개인 자료 정리 홈페이지 입니다.

Note > cppmariadb replication 명령어, 설정 모음

By a3040, Published on Invalid Date

CHANGE MASTER TO 

MASTER_HOST='192.168.0.156',

MASTER_USER='replica_user',

MASTER_PASSWORD='pwd___cus',

MASTER_LOG_FILE='i1pms-bin.000001',

MASTER_LOG_POS=328;


START SLAVE; //슬레이브 시작


STOP SLAVE; // 복제 중지

RESET SLAVE; // 기존 복제 정보 초기화


SHOW SLAVE STATUS;



5대가 있었을때 3/2로 네트워크 분할 master가 두개 됐다가 병합할때 시나리오, 

병합 전략은 server-id가 가장 낮은 server를 마스터로 동작할때

데이터 충돌 해결 전략은 전적으로 server-id가 낮을 데이터가 우선이고 나머지는 다 삭제 할때

, replaction&backup까지 다해서



mariadb 에서 장애복구 구성중인데.. 서버번호(master/slave) 방식으로 쓸ㄲ

1(M), 2(S), 3(S),4(S)

네트워크 장애

1(m), 2(S)//단절//3(M), 4(s)

1 서버 장애

1(X), 2(M)//단절//3(M),4(s)

1 서버 복구

1(M), 2(S)//단절//3(M),4(s)

네트워크 복구

1(M),2(S),3(S),4(S) 


M설정 정책은 server-id가 낮을놈

복구 정책은 데이터는 무조건 M을따름 일때 작업 방식좀




슬레이브에서 마스터로 승격 (CHANGE MASTER TO)

STOP SLAVE; -- 기존 복제 중지

RESET SLAVE ALL; -- 이전의 복제 정보 초기화


SET GLOBAL server_id = 3; -- 새로운 마스터에 적합한 server-id 설정

SET GLOBAL log_bin = 'mysql-bin'; -- 바이너리 로그 활성화



slave 변경

CHANGE MASTER TO MASTER_HOST='new_master_ip', MASTER_USER='replication_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=12345;

START SLAVE;



replaction slave 관련 설정 sql 명령어

STOP SLAVE;

RESET SLAVE; 


CHANGE MASTER TO 

MASTER_HOST='192.168.0.156',

MASTER_USER='replica_user',

MASTER_PASSWORD='passwd_cus',

MASTER_LOG_FILE='repdab-bin.000001',

MASTER_LOG_POS=4; -- MASTER_LOG_POS는 4번부터 시작하는 것이 일반적입니다. 바이너리 로그의 첫 번째 이벤트가 Position 4부터 시작되기 때문


START SLAVE;

 

SHOW SLAVE STATUS;



slave쪽 C:\Program Files\MariaDB 11.7\data/my.ini

[mysqld]

datadir=C:/Program Files/MariaDB 11.7/data

port=33066

innodb_buffer_pool_size=2041M

character-set-server=utf8mb4


server_id = 2  

relay_log = mysql-relay-bin

#replicate_do_table = ip_db.trx

#replicate_do_table = ip_db.orders



[client]

port=33066

plugin-dir=C:\Program Files\MariaDB 11.7/lib/plugin



============= 마스터쪽 sql

START master;


SHOW VARIABLES LIKE 'log_bin';

RESET MASTER;


SHOW MASTER STATUS;

SHOW VARIABLES LIKE 'server_id';

SHOW BINARY LOGS;

SHOW SLAVE HOSTS;



C:\Program Files\MariaDB 11.6\data/my.ini

[mariadb]

datadir=C:/Program Files/MariaDB 11.6/data

port=3306

innodb_buffer_pool_size=2037M

character-set-server=utf8mb4

server-id=1

bind-address=0.0.0.0


#gtid_mode=ON

#gtid_strict_mode=ON

#slave_gtid_strict_mode = ON

#enforce_gtid_consistency=ON //only mysql 

#log-bin=mysql-bin

log_bin=i1pms-bin

#log_bin_basename=msql-bin //안됨 err

#relay-log=relay-bin

relay_log=relay-bin #

#binlog-format=ROW

binlog_format=ROW


binlog_do_db=xx_db_x


[client]

port=3306

plugin-dir=C:\Program Files\MariaDB 11.6/lib/plugin

Note > 자바스크립트 관련[jquery] filter, find

By a3040, Published on Invalid Date

jquery - filter : n.fn.init 객체에서 객체 내용 자체를 필터함[자기자신을 필터]

var b = $("body");

>> n.fn.init {0: body, length: 1, prevObject: n.fn.init, context: document, selector: 'body'}
ㅇ일때  b.find('body')는 찾을수 없음.
b.filter('body')로 찾아야함.



jquery - find : n.fn.init 객체의 요소를 선택해서 자식요소들을 찾음[자기의 자식요소들을 검색]

>> x = > n.fn.init {0: div#info_box, 
ㅇ일때  x.find('#info_box')는 찾을수 없음.
x.filter('#info_box')로 찾아야함.

#info_box 안쪽에 #first 가있을경우
x.find("#first")로 찾을수 있음..



Note > makerSIAM전자 시계, 컴퓨터 시간(RTC)가 유지된는 이유는

By a3040, Published on Invalid Date

전자 시계, 컴퓨터 시간이 유지된는 이유는?

- 컴퓨터 시간이 유지된는 이유는 

RTC모듈이 내장되어 있음.

- RTC모듈이 시간을 유지하는 방법은?

> 만들어질때 UTC 기준시간으로 초기화 되고, 그 이후는 자체 전원(보통 컴 보드에서 보이는 동그란 건전지)으로 유지되면서 

> 틱을 지속적으로 발생해서 초기화시간 + 만들어진 이후 틱개수 = 현재시간을 계산한다.


RTC 모듈은 제조 시점에 기준이 되는 UTC 시간으로 초기화됩니다. 이후에는 자체적으로 틱(tick)을 발생시켜 시간을 유지합니다. 구체적으로는 다음과 같은 과정이 있습니다:

  1. 초기화: RTC 모듈이 제조될 때 또는 처음 설정될 때 기준이 되는 UTC 시간으로 초기화됩니다.

  2. 틱 발생: RTC 모듈은 내부 클럭을 사용하여 초 단위로 틱을 발생시킵니다. 이 틱은 일정한 주기로 발생하며, 이를 통해 시간을 계산합니다.

  3. 시간 유지: RTC 모듈은 배터리 백업을 통해 전원이 꺼져도 시간을 계속 유지합니다. 내부 클럭이 계속 작동하여 틱을 발생시키기 때문에 시간이 정확하게 유지됩니다.

  4. 시간 읽기: 마이크로컨트롤러나 컴퓨터는 RTC 모듈로부터 현재 시간을 읽어와서 필요에 따라 타임존 변환을 통해 로컬 시간을 계산합니다.