컴퓨터2010.01.27 14:00

DECLARE @backupID int
DECLARE @mediaID int
DECLARE @restoreID int

DECLARE @year char(4)
DECLARE @month char(2)
DECLARE @day char(2)
DECLARE @deleteday char(10)
 
SET @year = year(getdate())-2 -- 2년전
SET @month = month(getdate())
SET @day = day(getdate())
IF len(@month) = 1
SET @month = '0'+ @month
IF len(@day) = 1
SET @day = '0'+ @day
SET @deleteday = @year +'-'+ @month +'-'+ @day

SELECT TOP 1 @backupID = backup_set_id, @mediaID = media_set_id from msdb..backupset
where
backup_finish_date > @deleteday

SELECT TOP 1 @restoreID = restore_history_id From msdb..restorehistory
Where
restore_date > @deleteday

delete from msdb..restorefile where restore_history_id < @restoreID
delete from msdb..restorefilegroup where restore_history_id < @restoreID
delete from msdb..restorehistory where restore_history_id < @restoreID or backup_set_id < @backupID
delete from msdb..backupfile where backup_set_id < @backupID
delete from msdb..backupmediafamily where media_set_id < @mediaID
delete from msdb..backupset where backup_set_id < @backupID

use msdb
DBCC SHOWCONTIG

DBCC DBREINDEX (restorefile, '', 100)
DBCC DBREINDEX (restorefilegroup, '', 100)
DBCC DBREINDEX (restorehistory, '', 100)
DBCC DBREINDEX (backupfile, '', 100)
DBCC DBREINDEX (backupmediafamily, '', 100)
DBCC DBREINDEX (backupset, '', 100)
Posted by Zasfe
컴퓨터2009.07.01 07:00

부제 : sp_addlinkedserver 를 이용하는 방법

MSSQL 2005 에서 MSSQL 2000 서버의 특정 데이블의 데이터가 필요할 경우가 있습니다.

  1. AJAX 를 이용해서 데이터를 가져옵니다.
    이건 너무 복잡해집니다. 배보다 배꼽이 더 커질수도 있는 조짐이 보이는 방법이군요.
  2. sp_addlinkedserver 를 이용해서 오픈쿼리로 실행을 한다.
    일단 이름이 딱 입니다.


정확히 무슨 용도로 사용이 되는지 sp_addlinkedserver 프로시저의 MSSQL 도움말을 살펴보도록 하겟습니다.

MSSQL 도움말 :  sp_addlinkedserver
OLE DB 데이터 원본과 유형이 다른 분산 쿼리를 액세스할 수 있도록 해 주는 연결된 서버를 작성합니다. sp_addlinkedserver와 연결된 서버를 작성한 다음에는 이 서버가 분산 쿼리를 실행할 수 있습니다. 연결된 서버가 Microsoft® SQL Server™로 정의된 경우에는 원격 저장 프로시저를 실행할 수 있습니다.


정말 MSSQL 2005 와 MSSQL 2000 를 하나의 서버처럼 사용할수 있습니다.  물론 SQL Server 뿐만 아니라, Oracle, 액세스/Jet, ODBC 데이터 원본, 파일 시스템, Microsoft Excel 스프레드시트, IBM DB2 Database 도 연결해서(linked) 사용을 할수가 있습니다. [주:지원하는 버젼이 정말 많네요]

sp_addlinkedserver 구문sp_addserver [ @server = ] 'server'
     [ @srvproduct = ] 'product_name'
     [ @provider = ] 'provider_name'
     [ @datasrc = ] 'data_source'
     [ @location = ] 'location'
     [ @provstr = ] 'provider_string'
     [ , [ @catalog = ] 'catalog' ]


이번에 사용하게된 MSSQL 2005 에서 MSSQL 2000 으로 sp_linkedserver 로 연결해서 사용하는 방법을 공개합니다.

MSSQL 2005 에서 MSSQL 2000 으로 sp_linkedserverEXEC sp_addlinkedserver
@server='서버별칭',
@srvproduct = '',
@provider = 'SQLOLEDB',
@datasrc =
'서버주소',@provstr='Provider=SQLOLEDB;Data Source=서버주소;Initial Catalog=데이터베이스명;User id=사용자명; Password=비밀번호;',
@catalog='데이터베이스명'
GO

EXEC sp_addlinkedsrvlogin '서버별칭', 'false', NULL, '사용자명', '비밀번호'
GO

SELECT * FROM [서버별칭].[데이터베이스명].[dbo].[sysfiles]
GO


Posted by Zasfe