모든 테이블을 리페어 하는 Stored procedure 를 작성할 필요가 있어서, 적어 봅니다.
alll tables should be repaired using open cursor in mysql.
DELIMITER $$
USE `getty`$$
DROP PROCEDURE IF EXISTS `test_repair_all`$$
CREATE DEFINER=`database name`@`%` PROCEDURE `test_repair_all`()
BEGIN
DECLARE pTableName VARCHAR(64);
DECLARE noMoreRows BOOLEAN DEFAULT FALSE;
DECLARE curTableList CURSOR FOR
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE 1=1
AND TABLE_SCHEMA = 'database name'
LIMIT 1;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET noMoreRows = TRUE;
OPEN curTableList; curTableListLoop: LOOP
IF ( noMoreRows ) THEN
CLOSE curTableList;
LEAVE curTableListLoop;
END IF;
FETCH curTableList INTO pTableName;
SET @s = CONCAT('repair table database name.', pTableName);
PREPARE stmt FROM @s;
EXECUTE stmt;
END LOOP curTableListLoop;
END$$
DELIMITER ;
2013년 11월 26일 화요일
모든 테이블 복구 하기. (all tables should be repaired in mysql)
2013년 11월 25일 월요일
테이블 정보 얻어 오기 - get information of table / column from each database (Oracle, MS-SQL, Mysql)
####################[오라클] 테이블 목록, 프로시저, 패키지 목록(패키지 내용등) 가져오는 방법 ####################
오라클에서 테이블, 프로시저, 패키지 목록 가져오는 방법
select * from all_objects;
select * from sys_objects;
select * from user_objects;
오라클에서 프로시저, 패키지등의 내용 가져오는 방법
select * from USER_SOURCE;
select * from ALL_SOURCE;
오라클에서 테이블의 칼럼 목록 가져오는 방법
select * from cols;
#################### [DB2]시스템정보보기 (테이블/칼럼정보등) ####################
list tables for schema CCS
- - SELECT TABNAME,INDNAME,COLNAMES
,UNIQUERULE,INDEXTYPE
FROM SYSCAT.INDEXES
WHERE TABSCHEMA='CCS' ;
-- DESCRIBE TABLE 테이블이름
===== 참조카달로그뷰===
참고로 DB2에 있는 시스템 카탈로그 뷰 입니다.
=========================================
SYSCAT.CHECKS 점검제한조건
SYSCAT.COLUMNS 컬럼
SYSCAT.COLCHECKS 점검 제한 조건이 참조하는 컬럼
SYSCAT.KEYCOLUSE 키에서 사용되는 컬럼
SYSCAT.DATATYPES 데이터 유형
SYSCAT.FUNCPARMS 함수 매개변수 또는 함수의 결과
SYSCAT.REFERENCES 참조 제한 조건
SYSCAT.SCHEMATA 스키마
SYSCAT.TABCONST 테이블 제한 조건
SYSCAT.TABLES 테이블
SYSCAT.TRIGGERS 트리거
SYSCAT.FUNCTIONS 사용자 정의 함수
SYSCAT.VIEWS 뷰
=========================================
===테이블조회 ============================
select TABNAME,COLNAME,TYPESCHEMA,LENGTH,NULLS,DEFAULT,REMARKS
from SYSCAT.COLUMNS
where TABSCHEMA ='CCS' --AND TABNAME = 'TBH001'
ORDER BY TABNAME,COLNO
===========================================
#################### [Mysql] 테이블/컬럼/인덱스 목록 가져오기 ####################
=> 테이블정보 조회
SELECT TABLE_SCHEMA,
TABLE_NAME,
TABLE_COMMENT ,
AUTO_INCREMENT
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND TABLE_NAME = 'table_nameXXX' ;
=> 컬럼정보조회
SELECT COLUMN_COMMENT,
COLUMN_TYPE,
COLUMN_KEY,
COLUMN_NAME,
IS_NULLABLE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = ' table_nameXXX '
AND TABLE_SCHEMA = 'xxxxxxxxxxxxxx'
2013년 11월 7일 목요일
MySQL error 1236: Client requested master to start replication from impossible position
원인 (cause)
===========
I/O 부하 / 등 여러가지 이유로 인해 Master / Slave 의 Replication이 깨진 상황.
( Client requested master to start replication from impossible position )
localhost-bin.000001 = 400
mysql>show slave status;
localhost-bin.000001 = 100
mysql log
=========
131104 16:16:57 [Note] Slave I/O thread: connected to master 'replicator@121.78.118.224:3306',replication started in log 'localhost-bin.000001' at position 20031086
131104 23:05:39 [ERROR] Error reading packet from server: error reading log entry ( server_errno=1236)
131104 23:05:39 [ERROR] Got fatal error 1236: 'error reading log entry' from master when reading data from binary log
131104 23:05:39 [Note] Slave I/O thread exiting, read up to log 'localhost-bin.000001', position 22002773
결과
===========
Salve 서버의 로그 포지션을 마스터와 일치하게 한 후, Slave 다시 시작.
STOP SLAVE;
CHANGE MASTER TO MASTER_LOG_POS = 0;
CHANGE MASTER TO MASTER_LOG_FILE = 'mysql-bin.000014';
START SLAVE;
===========
I/O 부하 / 등 여러가지 이유로 인해 Master / Slave 의 Replication이 깨진 상황.
( Client requested master to start replication from impossible position )
현황(status)
===========
mysql>show master status;localhost-bin.000001 = 400
mysql>show slave status;
localhost-bin.000001 = 100
mysql log
=========
131104 16:16:57 [Note] Slave I/O thread: connected to master 'replicator@121.78.118.224:3306',replication started in log 'localhost-bin.000001' at position 20031086
131104 23:05:39 [ERROR] Error reading packet from server: error reading log entry ( server_errno=1236)
131104 23:05:39 [ERROR] Got fatal error 1236: 'error reading log entry' from master when reading data from binary log
131104 23:05:39 [Note] Slave I/O thread exiting, read up to log 'localhost-bin.000001', position 22002773
결과
===========
Salve 서버의 로그 포지션을 마스터와 일치하게 한 후, Slave 다시 시작.
STOP SLAVE;
CHANGE MASTER TO MASTER_LOG_POS = 0;
CHANGE MASTER TO MASTER_LOG_FILE = 'mysql-bin.000014';
START SLAVE;
피드 구독하기:
글 (Atom)