Como Fazer Reorg do SQL Server 2005

30 10 2009

Mudar  a Forma do Recovery

O primeiro passo seria  separar o Log e os Datafiles , mas como o banco será alterado para o modo Recovery Simple essa ação não será necessário.

Recovery Simple

Esse é o método que será adotado para as bases de dados. O simple não vai fazer gerar mais logs de transações, mais o backup full continuará sendo feito normalmente.

Ao fazer uma transação, essa é armazenada no datafile e no log de transação ao mesmo tempo, com o simple essa transação será armazenada somente no datafile.

Alterar o modo do banco para Simple:

ALTER DATABASE BANCO SET RECOVERY SIMPLE

Ou ainda pelo Management Studio

simple

Comando para fazer o backup da base de dados:

BACKUP DATABASE BANCO TO DISK = ‘CAMINHO\BANCO.BAK’

Ou pelo management Studio

backup

Reindex do Banco

Outro ponto importante é fazer o reindex dos índices das tabelas.

Existe uma Stored Procedure chamada sp_MSforeachtable que permite executar de forma recursiva umreindex para todas as tabelas dentro de um banco de dados com a utilização de uma única linha de código.

EXEC sp_MSforeachtable @command1= “DBCC DBREINDEX (‘?’, ”, 80)”

Importante saber que ao fazer o reindex o SQL faz um clone do banco, sendo assim ele cresce 100%, providencie espaço caso não haja.

SHRINK

No Microsoft SQL Server 2005, você pode reduzir um arquivo de log de transação ou os datafiles de um banco de dados para remover páginas não utilizadas. O mecanismo de banco de dados reutiliza espaço com eficiência.

Primeiramente faça o shrink do banco:

DBCC SHRINKDATABASE (N ‘BANCO’ )

Logo em seguida faça o Shirink dos arquivos ( datafiles, log)

DBCC SHRINKFILE (N ‘DATAFILE’ , 0, TRUNCATEONLY)

DBCC SHRINKFILE (N ‘LOG’ , 0, TRUNCATEONLY)

TRUNCATEONLY

Libera o espaço livre no final do arquivo para o sistema operacional, mas não realiza qualquer movimento dentro do arquivo. O datafile é reduzida apenas a ultima extensão alocada.

Ou pelo Manager

shrirink

Olha …. Consegui números bem significativos …

BANCO 1
Antes:  Database – 23GB   / Log – 180MB
Depois:  Database – 22GB / Log – 20MB
Tempo: Reindex – 31 Min / Shrink – 10Min

BANCO2
Antes: Database – 5GB / Log – 504KB
Depois:  Database – 2,8GB / Log – 504KB
Tempo: Reindex – 30 Min / Shrink – 5Min

BANCO3

Antes: Database – 20GB / Log – 7,5GB
Depois:  Database – 20GB / Log – 20MB
Tempo: Reindex – 45 Min / Shrink – 15Min

E é isso ai minha gente

Beijão

Kenia Milene





Exportar e importar dados do SQL Server com linha de comando (BCP)

15 10 2008

 Bom amigos … todos conhecem o SQL Server e todas as suas ferramentas gráficas não é mesmo ????

 Pois existe uma maneira rápida, fácil e pratica de exportar (dump) e importar (restore) de uma base de dados SQL Server sem usar essas pesadas ferramentas.

O BCP (Bulk Copy Program) nos da à possibilidade de exportação e importação de dados através de uma simples linha de comando.

Para facilitar a vida é mais pratico criar arquivos bat que segue abaixo:

 

Exportanto

 

Bcp_exp.bat

 

Set Server=IP

Set DbUser=sa

Set DbPwd=SENHA

 

Bcp BD..TABELA OUT CAMINHO\tabela.bcp –o CAMINHO\tabela.log_exp –S%Server% -U%DbUser% -P%DbPwd% -c

Bcp BD..TABELA2 OUT CAMINHO\tabela2.bcp –o CAMINHO\tabela2.log_exp –S%Server% -U%DbUser% -P%DbPwd% -c

 

pause

 

Muito importante lembrar que existem problemas de versão, ou seja, exportação e importação entre Sql Server 2000 e 2005. Sendo assim para que não existam problemas, usamos o parâmetro –c

 

Importando

 

Bcp_imp.bat

 

Set Server=IP

Set DbUser=sa

Set DbPwd=SENHA

 

Bcp BD..TABELA IN CAMINHO\tabela.bcp –o CAMINHO\tabela.log_imp –S%Server% -U%DbUser% -P%DbPwd% -c

Bcp BD..TABELA2 IN CAMINHO\tabela2.bcp –o CAMINHO\tabela2.log_imp –S%Server% -U%DbUser% -P%DbPwd% -c

 

pause

 

PS: Substitua os valores em azul negrito pelos seus dados

E era isso ….

Boa Sorte !!!

 

Kenia Milene