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

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

By a3040, Published on 4/2/2025, 1:

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

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

By a3040, Published on 3/18/2025, 1

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")로 찾을수 있음..



Continue Reading
Note > 개발환경과도구정리cmake

By a3040, Published on 8/23/2024, 9

- cmake/cmake-gui


- 타겟이란? 만들려고 하는 목적물 이름

add_executable(Tutorial tutorial.cxx)


이 경우 윈도우 환경에서 Tutorial.exe 파일이 만들어지고 CMakeLists.txt에서 타켓이름은 Tutorial임


CMakeLists.txt

cmake_minimum_required(VERSION 3.10) #버전표시
project(Tutorial) #프로젝트명 표시
add_executable(Tutorial tutorial.cxx) # 실행파일 만들기


윈도우에서 CMake사용시 cl인지 gcc인지?

message(STATUS "C Compiler: ${CMAKE_C_COMPILER}")

message(STATUS "C++ Compiler: ${CMAKE_CXX_COMPILER}")

message(STATUS "C Compiler ID: ${CMAKE_C_COMPILER_ID}")

message(STATUS "C++ Compiler ID: ${CMAKE_CXX_COMPILER_ID}")


현재 타겟의 컴파일 옵션은?

#현재 CMakeListtxt에서 설정된것

get_target_property(TARGET_COMPILE_OPTIONS my_target COMPILE_OPTIONS)

#모든 타겟의 옵션 상속된것까지 /

get_target_property(ALL_COMPILE_OPTIONS my_target INTERFACE_COMPILE_OPTIONS) 


add_definitions()

 > 컴파일러에 전달할 전처리기 매크로(-D 옵션 포함)나 컴파일러 옵션을 추가

 

특정 컴파일러 대상으로

target_compile_definitions(my_target PRIVATE _UNICODE) 


add_definitions(-D_UNICODE) #cl에 /D_UNICODE 로 전달, GCC/Clang: -D_UNICODE 

이건 안됨 ? add_definitions(_UNICODE) #cl에 문자열로 전달됨


if (MSVC)  #msvc빌드일때 있음
  add_definitions(/D_UNICODE) # MSVC는 /D 사용
  #안됨?  add_definitions(/Wall)    # MSVC는 /Wall 사용
  add_compile_options(/Wall) 
else()
  add_definitions(-D_UNICODE) # GCC/Clang은 -D 사용
  #안됨?  add_definitions(-Wall)    # GCC/Clang은 -Wall 사용
  add_compile_options(-Wall) 
endif()



add_definitions(-D_XX=1) 은 global scop #define _XX 1 와 동일



외부 dll이 release로 되어 있어서 나도 Release 컴파일 할때 msvc 컴파일 옵션 추가하기

target_compile_options(${TARGET} PRIVATE /Od /Zi /Gy) # cmake에서 msbuild, cl.exe 사용시
target_link_options(${TARGET} PRIVATE /DEBUG /OPT:REF /OPT:ICF)



CMake Tutorial — CMake 3.30.2 Documentation

Continue Reading