SQL DB 암호화 / TDE(Transparent Data Encryption)
'Database > MS-SQL' 카테고리의 다른 글
AlwaysOn 가용성 그룹 구축 # 2 : Windows Server 2016 + MS SQL 2016 / None AD (1) | 2020.07.07 |
---|---|
AlwaysOn 가용성 그룹 구축 # 1 : Windows Server 2016 + MS SQL 2016 / None AD (6) | 2020.07.03 |
MS-SQL CPU 사용량이 높은 쿼리문 확인 (0) | 2018.06.22 |
현재 사용 중인 DB 중 제한 없는 DB 확인 쿼리 (0) | 2016.07.25 |
DDL, DML, DCL (0) | 2016.07.25 |
MS-SQL CPU 사용량이 높은 쿼리문 확인
MS-SQL DB 를 이용하는 서버의 CPU 사용량이 100% 가 출력되어 점검을 진행했다.
윈도우에서 성능 모니터에 카운터 추가를 해서 했는데 손이 너무 많이 간다.
성능 모니터에서 카운터 추가
성능 개체 : Thread
카운터 : % Processor Time / ID Thread
인스턴스 : sqlservr 리스트 전체 선택
CPU 사용량이 높은 SQL 스레드 ID 확인 : 4280
스레드 ID 로 spid 확인
SELECT spid, kpid, dbid, cpu, memusage FROM sysprocesses WHERE kpid=4280
SPID : 240
spid 로 쿼리문 확인
dbcc inputbuffer (240)
위에 생성 된 임시테이블의 select 구문과 현재 실행 중인 쿼리문을 조회하는 실행문을 동시에 실행해서 일치하는 spid 를 찾는 것도 좋은 방법일 것 같다.
'Database > MS-SQL' 카테고리의 다른 글
AlwaysOn 가용성 그룹 구축 # 1 : Windows Server 2016 + MS SQL 2016 / None AD (6) | 2020.07.03 |
---|---|
SQL DB 암호화 / TDE(Transparent Data Encryption) (0) | 2018.12.07 |
현재 사용 중인 DB 중 제한 없는 DB 확인 쿼리 (0) | 2016.07.25 |
DDL, DML, DCL (0) | 2016.07.25 |
X 행에 데이터가 커밋되지 않았습니다. (0) | 2016.07.25 |
mysql 이중화 구성 (Replication / 리눅스 + 윈도우)
리눅스 서버와 윈도우 서버에 mysql 을 설치 했으니, 이중화를 구성하려고 한다.
MS-SQL 이중화와는 방식이 다르긴 하지만 뭐, 그냥 저냥 해보면 될 것 같다.
1. Master 와 Slave 할당
검색을 통해서 알아보니깐 DB 버전이 완전히 같을 필요는 없지만, Slave 가 버전이 높아야 한다고 한다.
그래서 Master 는 리눅스 mysql 5.1 을, Slave 는 윈도우 mysql 5.6 으로 정했다.
M : Linux / mysql 5.1 / 192.168.1.10
S : Window / mysql 5.6 / 192.168.1.20
2. M 의 my.cnf 설정 추가
[mysqld] 하단에 아래의 구문 추가
log-bin=mysql-bin
server-id = 1
mysqld 서비스 재시작
# service mysqld restart
3. M 의 mysql 에 S 에서 접속할 사용자 계정 생성
mysql> use mysql;
mysql> grant replication slave on *.* to 'repluser'@'192.168.1.20' identified by 'password';
4. S 의 my.ini 설정 추가
[mysqld] 하단에 아래의 구문 추가
log-bin=mysql-bin
server-id = 2
윈도우 서비스에서 mysql 재시작
5. S 에서 M 에 접속하는 정보 등록
my.ini 에 아래와 같이 구문을 추가 하고, 서비스 재시작 했더니 구동 실패가 발생했다.
[mysqld]
master-host=192.168.1.10
master-user=repluser
master-password=password
master-port=3306
mysql 에서 직접 M 의 접속 정보 입력을 진행 했다.
mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.10',MASTER_USER='repluser',MASTER_PASSWORD='password', MASTER_PORT=3306, MASTER_CONNECT_RETRY=30;
mysql > start slave;
하고 나면, my.ini 에 해당 설정이 추가 되는게 아니라 C:\ProgramData\MySQL\MySQL Server 5.5\data\master.info 파일이 생성되어 저장 된다.
윈도우 환경이라서 다른 것일 수도 있다. (리눅스 끼리 연동 후 확인 필요)
6. M 의 mysql 에서 replication 작동 상태 확인
mysql> show master status;
7. S 의 mysql 에서 replication 작동 상태 확인
mysql> show slave status;
8. M 의 mysql 에 접속하여 테이블 생성 및 데이타 입력
mysql> use test;
mysql> create table gunnm ( no int(5), date int(10), text char(50), primary key(no) );
mysql> insert into gunnm values ('1', '20180321', 'replication test success, gunnm.tistory.com');
mysql> select * from gunnm;
9. S 의 mysql 에 접속하여 gunnm 테이블 조회
mysql> use test;
mysql> select * from gunnm;
10. 결과
MS-SQL 의 미러링을 구성하는 Slave 서버에서는 대부분의 기능이 제한적인데 반해, mysql 에서는 slave 이지만 데이타값 조회가 가능한 것을 확인했다.
그래서 slave 에서 데이타를 입력하면 master 에도 반영이 되는가를 테스트 해보았는데, 결과는
master 의 테이블에는 slave 에서 입력한 데이타값 저장이 되지 않았다.
결과적으로 Master 로 부터 데이타를 가져와서 저장을 하지만, 양방향 동기화가 되는 것은 아니다.
즉, Master 에서 Slave 로의 데이타 백업만 진행되는 것을 확인 했다.
구성 방식을 바꾸면 가능한지를 확인해 봐야겠다.
OS 가 상이하여도 (리눅스 + 윈도우), mysql 을 DBMS 로 사용 한다면 이중화 구성이 가능함을 확인했다.
'Database > MySQL' 카테고리의 다른 글
윈도우 mysql 5.6 DB 백업 스케쥴 생성 (0) | 2019.07.24 |
---|---|
윈도우 mysql 서버의 my.ini 파일 위치 확인 (2) | 2018.03.20 |
mysql 구버전 설치 링크 (0) | 2018.03.20 |