마스터 + 배포 + 슬레이브 서버로 구성 구성후 복제에이전트를 구동하면 슬레이브 디비에 연결되지 못하고 에이전트가 다운됨 배포서버에 이런 에러가 나옵 [Tue Aug 3 13:45:42 2010] : ERROR(178023): can't connect to the slave. - demodb2 [Tue Aug 3 14:15:30 2010] : ERROR(178023): can't connect to the slave. - demodb2 [Tue Aug 3 14:39:14 2010] : ERROR(178023): can't connect to the slave. - demodb2 [Tue Aug 3 17:16:32 2010] : ERROR(178023): can't connect to the slave. - demodb2 확인할 사항 1 배포DB에 dba 로 접속해서 select * from slave_info 결과 중 master_ip 값이 실제 슬레이브DB의 정보와 동일한지 확인 필요 확인할 사항 2 마스터 서버와 슬래이브 서버간 통신 상태를 확인. 배포데이터베이스 구성시 복제 서버 포트를 지정했을 것인데 관련 포트의 연결이 가능한지를 확인해 본다. 또한
mysql 대용량 파일 insert 하기 (load data) LOAD DATA INFILE '로드 할 파일명' INTO TABLE 테이블명FIELDS TERMINATED BY '|'LINES TERMINATED BY ' '(컬럼명 쭉~~~~~~~~~`); FIELDS TERMINATED BY '|' : 컬럼을 구분자 구분자 지정LINES TERMINATED BY ' ' : 라인(줄)을 구분해줄 구분자. 보통 지정ignore 1 line : 등록할 파일명의 첫줄을 무시하고 insert LOAD DATA INFILE '로드 할 파일명' INTO TABLE 테이블명FIELDS TERMINATED BY '|'LINES TERMINATED BY ' 'ignore 1 line (a, b, c, d, e, f`);
# Linux9 + oracle9i 시스템에서 DB생성하가다 발생한 에러 [oracle@server oracle]$ ./dbca Initializing Java Vertual Machine from /tmp/OraInstall/jre/bin/jre. Pleae wait... /tmp/OraInstall/jre/bin/../lib/i686/green_threads/libzip.so: symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference (libzip.so) Unable to initialize threads: cannot find class java/lang/Thread Could not create Java VM I tried setting LD_ASSUME_KERNEL=2.4.1 but it still doesn't work.Please help. Thanks # 해결방법 [oracle@server oracle]$ export LD_ASSUME_KERNEL=2.4.1
INSERT INTO mysql.user(User, Host, Password, ssl_cipher, x509_issuer,x509_subject) VALUES('유저아이디t', 'localhost', Password('패스워드'), '', '', ''); INSERT INTO `mysql`.`db` (`Host` ,`Db` ,`User` ,`Select_priv` ,`Insert_priv` ,`Update_priv` ,`Delete_priv` ,`Create_priv` ,`Drop_priv` ,`Grant_priv` ,`References_priv` ,`Index_priv` ,`Alter_priv` ,`Create_tmp_table_priv` ,`Lock_tables_priv` ,`Create_view_priv` ,`Show_view_priv` ,`Create_routine_priv` ,`Alter_routine_priv` ,`Execute_priv` ,`Event_priv` ,`Trigger_priv`)VALUES ('localhost', '디비명', '유저아이디', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y',
ERROR 2006 (HY000) at line 2631: MySQL server has gone away 정해진 패킷 사이즈 또는 timeout 을 초과하게 되면 아래와 같은 오류를 발생 이에 대한 해결책은 아래처럼 값을 임의로 조정. # vi /etc/my.cnf <-- 수정 max_allowed_packet = 1000M wait_timeout = 1200000 interactive_timeout = 10 connect_timeout = 100000
mysql strict mode off 구동 스크립트에서 "start" 부분에 off 옵션을 넣는다. $bindir/mysqld_safe --sql-mode="" --datadir="$datadir" ~~~~~~~~~~
mysql Replication 이용 중 마스터 디비의 데이터가 슬래이브 디비의 데이터에 반영되지 않을 경우 슬래이브 상태를 확인했을 때 아래와 같은 에러가 발생할 수 있다. 101008 19:48:58 [ERROR] Slave: Error 'Duplicate entry '222' for key 1' on query. Default database: 'M_SERVICE'. Query: 'INSERT INTO T_LOTTO_MY ( MY_SEQ,USERNO,NUM1,NUM2,NUM3,NUM4,NUM5,NUM6,GAME_NUM,RANK,PRIZE,UPDATE_DATE ) VALUES ( null,'620013149754',4,18,25,44,16,8,409,'0',0,NOW() )', Error_code: 1062 원인은 슬래이브 데이터베이스에 갱신된 데이터를 쓰로고 할때 발생하는 에러이다. 슬래이브는 에러가 발생하면 더이상 마스터로부터 갱신된 데이터를 반영하지 않는다. 하지만 다행스럽게도 마스터에서의 갱신 정보는 슬래이브에 쌓여있어 위 문제를 해결하여 Replication을 정상화 시킬 수 있다. 해결책) 1. 슬래이브 상태를 멈춘다
# SQL처리 시 Temporary Table이 디스크에 사용되지 않도록 해야한다.# Temporary Table 현황 모니터링# Created_tmp_files 이 많다면 tmp_table_size를 늘려주기mysqladmin -uroot -p extended-status -r -i 1 | grep -E 'Created_tmp|--' 일부 쿼리는 Temporary Table을 메모리에 사용하지 않고 디스크를 바로 사용하는 경우가 있다.쿼리 자체를 수정하여 디스크를 사용하지 않도록 해야겠다. 임시 꼼수로.통계성 쿼리 질의 전에 세션 변수 설정(2G로 할당)을 한 후 해본다. 디스크 사용을 줄이기 위한 목적이지만 쿼리 자체를 수정하는게 더 좋은 방법임.set session tmp_table_size = 2 * 1024 * 1024 * 1024;set session max_heap_table_size = 2 * 1024 * 1024 * 1024;
# Mysql bin log 로테이션 방법 vi /etc/my.cnf ------------------------------------- log-bin=mysql-bin binlog_cache_size = 1M max_binlog_size = 100M expire_logs = 7 ------------------------------------- 로그파일 사이즈를 100M로 하고 갯수는 7개로 제한하는 설정이다. /etc/init.d/mysqld restart -> 데몬 재시작으로 적용한다
mysqlcheck --check --databases [database name]
cubrid 에서 슬로우 쿼리 뽑기(cubrid slow query) 명령어는 큐브리드 브로커 로그가 있는 곳에서 실행한다. # 하나의 로그 파일에서 슬로우 쿼리 뽑기 broker_log_top broker1_1.sql.log # 모든 로그 파일에서 슬로우 쿼리 뽑기 broker_log_top *.log # 특정 기간동안 슬로우 쿼리 뽑기 - 11월 11일부터 11월 12일까지 생성된 SQL 로그에서 슬로우 쿼리 뽑기 - 월과 일은 공백으로 구분한다 - Windows에서는 "*.sql.log"를 인식하지 않으므로 SQL 로그 파일들을 공백으로 구분해서 나열해야 한다. broker_log_top -t -F "11 11" -T "11 12" *.sql.log # 결과 확인 $CUBRID_PATH/log_top.q 파일에 생성 됨
// mysql root password 등록 [root@linux mysql]# mysql -u root -p mysql Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 1 to server version: 4.0.23-Max Type 'help;' or 'h' for help. Type 'c' to clear the buffer. mysql> update user set password=password('비밀번호입력') where user='root'; Query OK, 2 rows affected (0.00 sec) Rows matched: 2 Changed: 2 Warnings: 0 mysql> flush privileges; <== mysql 재시동 Query OK, 0 rows affected (0