쉬운 작업인데 사실 사용중에 작업하기에는 부담이 될 수 있다. [환경만들기] tempdb 데이터파일이 9개, 로그파일이 1개로 구성된 템프디비를 변경해 보자. 각 데이터파일도 사이즈가 제각각이다. sp_helpdb tempdb go ALTER DATABASE tempdb ADD FILE ( NAME = N'tempdev2', FILENAME = N'E:\Program Files\Microsoft SQL Server\MSSQL12.GHOST\MSSQL\DATA\tempdev2.ndf' , SIZE =2MB , FILEGROWTH = 2MB) ALTER DATABASE tempdb ADD FILE ( NAME = N'tempdev3', FILENAME = N'E:\Program Files\Microsoft ..
CLR을 사용하는 사용자데이터베이스를 이전 후 CLR 의 함수들을 호출하면 오류가 발생한다. [오류메세지]메시지 10314, 수준 16, 상태 11, 줄 6 어셈블리 ID 65536을(를) 로드하는 동안 Microsoft .NET Framework에서 오류가 발생했습니다. 서버의 리소스가 부족하거나 어셈블리가 PERMISSION_SET = EXTERNAL_ACCESS 또는 UNSAFE로 트러스트되지 않은 것 같습니다. 쿼리를 다시 실행하거나 설명서에서 어셈블리 트러스트 문제를 해결하는 방법을 참조하십시오. 이 오류에 대한 자세한 내용은 다음을 참조하십시오: System.IO.FileLoadException: 파일이나 어셈블리 'valiatephonenumbers, Version=0.0.0.0, Cultu..
[참고문서]의 샘플코드로 데모를 해본 결과 잘 된다. 장애 시 적절할 시나리오를 만들어 놓고 대응하면 좋을 것 같다. 1. 오류발생 전 전체백업본이 존재해야 된다. 2. 적절한 시점에 log 백업을 받아야 된다. 3. 혹시 모르니 장애시점에 전체백업을 한번 더 받자 --#.1 환경 만들기 USE master GO CREATE DATABASE PageLevelRestores GO USE PageLevelRestores GO -- Create a table where every record fits onto 1 page of 8kb CREATE TABLE Test ( Filler CHAR(8000) ) GO -- Insert 4 records INSERT INTO Test VALUES (REPLICATE('..
방법. 2 Attach(연결)로 해보자. MoveDB.mdf, ldf 를 COPY하여 연결하면 아래와 같이 메타데이터가 생성이 된다. 2005의 메타데이터정보만 존재한다. 신규 ndf 파일이 생성 되지 않았다. use MoveDB go select * from sys.database_files select * from sys.master_files where database_id = db_id('MoveDB') -- SQL Server 2012 use MoveDB GO SELECT * FROM sys.fulltext_catalogs 별도 ftrow_FTCatalog 가 생성되지 않았다. 그럼 어디에 인덱싱이 되어 있을까? 좀 찝찝하다. 정상적으로 하기 위해서는 아래와 같이 하는 방법이 좋을 것 같다. M..
전체텍스트인덱스를 적용한 데이터베이스를 이전하는 작업이다. 이전할 때 고려해야 하는 내용이다. 이전하는 데이터베이스 중에서 Full-Text Search 기능을 활성화하여 사용하는 데이터베이스는 마이그레이션시 꼭 확인해야 하는 부분이다. 간단하다. EXEC sp_MSforeachdb 'use ? SELECT ''?'', name FROM sys.fulltext_catalogs;' 이 쿼리를 수행하여 출력이 되면 사용하고 있는 것으로 판단하면 된다. 실제 인덱싱까지 하고 있는지 좀 더 확인해보면 좋을 것 같다. 자. 복원해보자. 방법. 1 전체백업으로 이전하는 방법. backup database MoveDB to disk='C:\MSSQL\MoveDB.bak' /* 파일1에서데이터베이스'MoveDB', 파..
검색엔진을 비스무리하게 만든 기능이다. 한글일 때는 약간 버버벅 걸린다는 얘기가 있는데 잘 모르겠다. 전체텍스트의 카탈로그 및 인덱스를 만들어서 검색을 보다 쉽게 해보자. 순서.1 Full-Text Catalog(전체 텍스트 카탈로그) 만들기. 순서.2 Full-Text Index(전체 텍스트 인덱스) 만들기. 순서.3 전체 텍스트 인덱스 채우기 즉시 수행. Full-Text Catalog(전체 텍스트 카탈로그) 만들기 SSMS에서 해당 데이터베이스의 저장소 > 전체 텍스트 카탈로그 에서 새로 만들기 한다. 카탈로그 이름, 위치를 입력한다. 완료하면 위치폴더에 아래와 같이 카탈로그이름에 대한 폴더가 생성이 된다. Full-Text Index (전체 텍스트 인덱스) 만들기 적용할 테이블의 오른쪽 버튼을 클..
SQL Server 에서는 xp_cmdchell 로 윈도우 cmd의 명령어를 똑 같이 수행할 수 있다. 아래 경우는 성능모니터 수집을 위해서 logman.exe 를 자동 수행하는 JOB을 생성할 때 아래와 같은 오류가 발생한다. [오류] 다음 사용자로 실행되었습니다: NT Service\SQLAgent$GHOST. 오류: 액세스가 거부되었습니다. 종료 코드 -2147024891을(를) 처리합니다. 단계가 실패했습니다. [Action Plan] 성능모니터에서 사용자정의로 생성한 JOB에 대하여 아래와 같이 SQL Agent 시작계정을 추가해주면 된다. 해당 계정이 localsystem이 경우에는 자동 실행이 되지만, 가상계정일 경우에는 별도 추가를 해줘야 한다. 즉 Logman.exe를 실행하는 권한이 없..
SQL Server 데이터베이스 기본 위치 변경하기 해당 경로는 설치 시 데이터베이스 기본 설정 위치를 설정할 수 있고, 나중에 변경이 가능하다. 해당 값은 레지스트리에 등록이 되어 있어서 실제 변경은 레지스트리를 변경하는 작업을 하게 된다. 변경하는 방법은 쉽다. SSMS 에서 개체 탐색기를 열고 해당 인스턴스의 오른쪽 메뉴의 [속성]을 클릭한다. 속성에서 [데이터베이스 설정] 을 선택하면 하단의 [데이터베이스 기본 위치] 설정 메뉴가 있다. 여기에서 해당 경로를 선택하면 된다. 아래와 같이 변경하고 확인을 클릭한다. 변경을 하게 되면 아래와 같이 레지스트리가 변경이 된다. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12.MSSQL..
Forwarding Records(Forwarded Records) on SQL Server Heap Tables 힙테이블에서 데이터가 INSERT OR UPDATE 쿼리가 수행될 때 데이터페이지(8K) 가 FULL 일경우에 다른 페이지에 데이터가 들어가게 된다. 그러나 Update 일 경우에 기존의 데이터가 있는 페이지가 FULL 이 될 경우에 다른페이지에 Update 된 데이터가 들어가게 된다. 이때 기존의 데이터페이지에서 이동된 데이터를 찾을 때 연결고리가 필요하다. 이때 Forwarding Pointer(Forwarded Pointer) 가 찍히며 해당 포인터를 찾아가서 데이터를 찾아오게 된다. 이렇게 되면, 데이터가 SELECT 시 더 많은 페이지를 찾아가므로 성능저하가 발생한다. 페이지가 변경..
SQL Server 2008 Upgrade Advisor TO SQL Server 2000 Instance Conneciton 원본서버 : Windows Server 2003 + SQL Server 2000 대상서버 : Windows Server 2008 R2 + SQL Server 2008R2, UA install 업그레이드관리자를 설치하고 도메인환경일 경우에는 원본서버의 ServerName(Hostname)으로 접속이 잘된다. 하지만 비 도메인환경일 경우에는 찾지 못하는 경우가 발생한다. 오류는 아래와 같이 발생한다. [해결방법] 조금 아리까리 했던 부분은 InstanceName 입력하는 부분에서 조금 헤맸다. 그게 키포인트였다. SQL 2000의 인스턴스이름이 msslqserver 일줄이야. (ㅠ...
- Total
- Today
- Yesterday