DBMS 39

[SQL Server / MS-SQL] MI 읽기 전용 보조 복제본으로 접속하기 (Connecting to a read-only secondary replica)

Azure Managed Instance 에서 읽기 전용 보조 복제본으로 접속해보려고 한다.  1. Object Explorer > Database Engine...  2. Connect to Server > Sever name, Login/Password 입력 > Options  3. Additional Connection Parameters > ApplicationIntent=ReadOnly 입력 > Connect*단,  General Purpose(GP) 서비스 계층은 지원하지 않으며, Business Critical(BC) 서비스 계층에서만 지원된다.  4. 아래 쿼리를 통해 READ_ONLY 확인1SELECT DATABASEPROPERTYEX(DB_NAME(), 'Updateability')cs..

[MySQL] Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.

1. 오류 발생 (Error Occurred) Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect. 2. 오류 원인 (Error Cause) 테이블을 UPDATE 나 DELETE 를 하려고 할 때, KEY 컬럼을 이용한 수정/삭제만 가능하도록 설정되어 있어 KEY 가 아닌 컬럼을 이용하여 수정/삭제 할 경우, 해당 오류가 발생한다. When trying to UPDATE or DELETE a tab..

DBMS/MySQL 2020.04.29

[MySQL] Fetal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.

1. 오류 발생 replication 구성 시 mysqldump 를 통해 데이터를 그대로 복사하여 리플리케이션을 구성 시 발생하는 오류이다. mysql> show slave status\G *********************************1. row ************************************ Slave_IO_State: Master_Host: 12.345.678 Master_User: repl_user Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000010 Read_Master_Log_Pos: 120 Relay_Log_File: mysqld-relay-bin.000001 Relay_Log_Pos: 4 ..

DBMS/MySQL 2020.03.30

[MySQL] ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

[root@test ~]$ mysql -u dba -p Enter password: ERROR 2002 (HY000): Can't connect to local MySQL server through socker '/var/lib/mysql/mysql.sock' (2) mysql 접속 중 위와 같은 오류가 발생했다. '/var/lib/mysql/mysql.sock' 에 연결할 수 없다는 오류이다. 해당 오류가 발생하는 원인과 해결방법이 다양한데 나는 두가지 정도 체크한 후에 해결하였다. [원인-1] mysqld 가 시작되지 않은 상황에 발생할 수 있다. 아래의 명령어를 통해 나의 mysqld 작동 상태를 확인 할 수 있다. [root@test ~]$ service mysqld status MySQL is ..

DBMS/MySQL 2020.02.19

[MySQL] 데이터베이스 및 테이블별 용량 (Size by databases and tables) 조회

데이터베이스별, 테이블별, 전체 용량을 아래 쿼리를 통해 확인 할 수 있다. 1. 데이터베이스별 용량 (Database Size) 조회 SELECT table_schema AS 'DatabaseName', ROUND(SUM(data_length+index_length)/1024/1024, 1) AS 'Size(MB)' FROM information_schema.tables GROUP BY table_schema ORDER BY 2 DESC; 2. 전체 용량 (Total Size) 조회 SELECT ROUND(SUM(data_length+index_length)/1024/1024, 1) AS 'Used(MB)', ROUND(SUM(data_free)/1024/1024, 1) AS 'Free(MB)' FRO..

DBMS/MySQL 2020.02.18

[SQL Server / MS-SQL] 데이터베이스 분리 및 연결 (Detach / Attach)

# 데이터베이스 분리 및 연결 (Database Detach And Attach) 데이터베이스를 운영중에 디스크 공간 부족으로 인해 데이터 파일(Data File) 을 새로운 디스크로 옮겨야 할 경우, 데이터베이스 분리 및 연결을 이용할 수 있다. 데이터베이스 분리 및 연결은 같은 컴퓨터의 다른 SQL Server 인스턴스로 변경하거나 데이터베이스를 이동하는 경우 유용하다. 데이터베이스를 분리하면 SQL Server 인스턴스에서 해당 데이터베이스가 제거되지만 데이터 파일 (Data File) 과 트랜잭션 로그 파일 (Transaction Log File) 은 그대로 유지된다. ※ 데이터베이스를 분리할 수 없는 경우 - 데이터베이스 스냅샷 (Database Snapshot) 이 있는 경우 → 먼저 해당 데..

[SQL Server / MS-SQL] 운영 체제 오류 5: "5(액세스가 거부되었습니다.)"

# 운영 체제 오류 5: "5(액세스가 거부되었습니다.)" (Microsoft SQL Server, 오류: 5120) 물리적 파일 "D:\MSSQL\DATA\test.mdf"을(를) 열 수 없습니다. 운영 체제 오류 5: "5(액세스가 거부되었습니다.)". 이 오류는 데이터베이스 파일을 다른 위치로 옮기기 위해 데이터베이스 분리 후 파일의 저장위치를 변경하고 연결(Attach) 시도 시 발생한 오류이다. [SSMS] [T-SQL] 이 오류는 데이터베이스 파일을 옮기려는 경로에 접근(액세스) 권한이 없어서 발생한다. 먼저, MSSQL 의 기본 저장 경로의 권한을 확인해보자. 나의 경로는 아래와 같다. "C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\..

[SQL Server / MS-SQL] 데이터베이스 소유자 (db owner) 조회 및 변경

# 데이터베이스 소유자 (Database Owner) 조회 및 변경 먼저 각 데이터베이스의 소유자를 조회해보자. 조회 방법1. SELECT a.name AS [Database], b.name AS [Owner] FROM sys.databases AS a JOIN sys.sql_logins AS b ON a.owner_sid = b.sid 조회 방법2. SELECT name AS [Database], SUSER_SNAME(owner_sid) AS [Owner] FROM sys.databases [조회 결과] 나는 'test' 라는 DB 의 소유자를 'sa' 에서 'an' 으로 바꾸어주려고 한다. 이때 아래의 쿼리를 이용해서 바꿔줄 수 있다. ALTER AUTHORIZATION ON DATABASE:: te..

[SQL Server / MS-SQL] 모든 프로시저명 (Procedure Name) 조회

# DB 내 모든 프로시저명 (Procedure Name) 조회 INFORMATION_SCHEMA.ROUTINES 을 이용하여 DB 내의 모든 프로시저명을 조회할 수 있다. 시스템 정보 스키마 뷰로, ROUTINES 에서는 저장된 프로시저(Procedure) 와 함수(Function) 정보를 알 수 있다. 전체 프로시저 조회 SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE = 'PROCEDURE' 프로시저의 전체 정보를 알 수 있다. DB명, 스키마명, 프로시저명, 프로시저 내용, 생성일, 최근수정일 등이 이에 해당된다. 프로시저명, 프로시저내용 조회 SELECT ROUTINE_NAME AS [ProcedureName], ROUTINE_DEFI..