Nesta publicação e vídeo aula vamos aprender um pouco mais sobre banco de dados de sistema do SQL Server ou System Databases.
Vamos descobrir quais são estes bancos ? O que armazenam ? E para que eles servem ?
Requisitos & Recursos : Tutorial Banco de Dados de Sistema : SQL Server System Database
Antes de mais nada, caso você queira praticar em seu computador os conceitos apresentados aqui, estes são os requisitos e recursos que iremos utilizar neste tutorial:
- SQL Server 2019
- SQL Server Management Studio
Caso queira instalar estes softwares em seu computador, veja nossa publicação sobe o assunto:
Vídeo Aula : Banco de Dados de Sistema : SQL Server System Databases
Conteúdo da vídeo aula : System Database : SQL Server
🕐 Clique nos links de marca de tempo abaixo para assistir o conteúdo de interesse :
1:13 : ⏺ Requisitos & Recursos : Vídeo Aula
1:47 : ⏺ Conteúdo : Vídeo Aula
1:52 : ⏺ Quais são os Bancos de dados de Sistema do SQL Server ?
3:02 : ⏺ Banco de Dados Master : O que é e Para que serve?
4:00 : ⏺ Consultando informações de Metadados no Banco de dados Master do SQL Server
5:55 : ⏺ Banco de Dados Model : O que é e Para que serve?
6:42 : ⏺ Banco de Dados MSDB : O que é e Para que serve?
7:14 : ⏺ Banco de Dados TEMPDB : O que é e Para que serve?
Materiais e leituras que recomendamos para você:
- Instalação SQL Server 2017 Express + SSMS + Adventure Works
- Como Ativar o Tema Escuro SQL Server Management Studio
- Instalação Banco de Dados Adventure Works SQL Server 2019
- Introdução ao SQL Server
- Instalação do SQL Server no Linux
- Trabalhando com data e Hora no SQL Server
Quais são os Bancos de dados de Sistema do SQL Server ?
Os principais bancos de dados do sistema do SQL Server são 4:
- Master
- Model
- MSDB
- TempDB
Cada um deles é utilizado pelo SQL Server para fins distintos.
De todos estes, o banco de dados Master é o banco de dados mais importante.
Em seguida, vamos ver em detalhes a finalidade de cada um deste bancos nas próximas seções.
Vale lembrar, que existem outros bancos de sistema, como:
Mssqlsystemresource, SSISDB (Integration Services), Reportserver, Reportservertempdb (Reporting Services) e Distributor (Replicação)
Porém, iremos abordar estes bancos de sistema em outros tutoriais.
No momento vamos focar nestes 4 que são os principais.
Banco de Dados Master : O que é e Para que serve?
Primeiramente, vamos conhecer a função do banco de dados Master.
Neste banco de dados são armazenadas as informações sobre a configuração do servidor SQL.
Sem o banco de dados Master, o servidor SQL Server não pode ser iniciado.
O que o Banco de dados Master do SQL Server Armazena ?
O Master Database armazena as informações de metadados sobre todos os outros objetos criados no SQL Server.
Metadados = Dados sobre os dados
Exemplo de dados armazenados no Master :
- Bancos de dados
- Tabelas
- Stored Procedures (procedimentos armazenados)
- Views
- Functions, etc.)
O Master também armazena as informações de login dos usuários.
Se o banco de dados Master estiver corrompido e não puder ser recuperado pelo backup,
O DBA (Database Administrator) precisará reconstruí-lo novamente para que a instancia do banco de dados volte a funcionar adequadamente.
Em síntese, tudo o que é crucial para o SQL Server esta armazenado no banco de dados Master, ele não pode ser excluído.
Portanto, por ser o coração do SQL SERVER é vital manter um backup atualizado do banco de dados Master.
Consultando informações do Metadados no Banco de dados Master do SQL Server
Depois de conhecermos a importância do Master, vamos ver na prática, como extraímos dados dos metadados deste banco de dados no SQL Server.
Por exemplo, vamos utilizar uma outra dica que disponibilizamos aqui no Web Mundi.com:
A consulta a seguir exibe a quantidade de registros das tabelas do banco de dados SQL Server
select o.name as Tabela, i.rowcnt as linhas from ( select distinct id, rowcnt from sys.sysindexes) i inner join sys.objects o on i.id = o.object_id
Por fim, perceba que este script Transact SQL busca informações nas tabelas de sistema sys.objects e sys.sysindexes ambas presentes no banco de dados master.
Neste outro exemplo, vamos utilizar um script do site da Microfoft que retorna todos os índices para a tabela Production.Product no Banco de dados AdventureWorks:
SELECT i.name AS index_name ,i.type_desc ,is_unique ,ds.type_desc AS filegroup_or_partition_scheme ,ds.name AS filegroup_or_partition_scheme_name ,ignore_dup_key ,is_primary_key ,is_unique_constraint ,fill_factor ,is_padded ,is_disabled ,allow_row_locks ,allow_page_locks FROM sys.indexes AS i INNER JOIN sys.data_spaces AS ds ON i.data_space_id = ds.data_space_id WHERE is_hypothetical = 0 AND i.index_id <> 0 AND i.object_id = OBJECT_ID('Production.Product'); GO
E ai ? O que você achou dos Metadados ?
Deixe sua opinião nos comentários, Porque assim, ficamos sabendo que este assunto lhe interessa, e desde já poderemos trabalhar na criação de mais conteúdos sobre este assunto.
Estamos sempre lançando novos vídeos sobre SQL Server e banco de Dados, por isso,
se inscreva em nosso canal, pois assim o YouTube te avisa toda vez que sair um novo vídeo no Canal Web Mundi.com
Banco de Dados Model : O que é e Para que serve?
O System Database Model é utilizado como modelo para os demais bancos de dados do SQL Server.
Resumindo, ele configura um template ou modelo para todo novo banco de dados criado na instância do SQL Server.
Portanto, quando criamos um novo banco de dados, os dados presentes no banco de dados Model são movidos para o novo banco de dados para criar objetos padrões, como tabelas, stored Procedures, etc…
Por padrão, o Banco Model não contém dados.
Outra função do Model Database
O banco Model não é utilizado somente na criação de um novo banco de dados
Sempre que o SQL Server é iniciado, outro banco de sistema, o Tempdb, é criado usando o banco Model na forma de um modelo.
Banco de Dados MSDB : O que é e Para que serve?
O Banco de dados MSDB é utilizado pelo SQL Server Management Studio e SQL Server Agent para armazenar atividades do SQL Server, como:
- Jobs ou Tarefas do SQL Server
- Mail (Correio)
- Service Broker
- Planos de manutenção
- Histórico de backup de banco de dados do usuário e do sistema
- Informações de replicação
- Log Shipping
Frequentemente, precisamos fazer um backup desse banco de dados para garantir o funcionamento adequado do SQL Server Agent Service.
Banco de Dados TEMPDB : O que é e Para que serve?
Agora vamos conhecer o System Database TempDB, como o próprio nome sugere, é o banco temporário do SQL Server.
Entretanto, nem por isso, é ele o menos importante que os demais.
Ao contrário, é um dos bancos de sistema, depois do Master, que requer mais atenção e cuidado, como veremos na sequência.
O tempdb é o database acessado por todos os usuários na instância do SQL Server.
O TEMPDB é o local para armazenar tabelas temporárias, Stored Procedures temporárias, cursores e objetos internos para lidar com classificações e spools também são criados temporariamente aqui.
Portanto, qualquer outra forma de trabalho realizada pelo SQL Server que não ocorra na memória é tratada no TEMPDB.
Além disso, outro grande uso do tempdb é o versionamento de linha.
Mais detalhes sobre versionamento de linha constulte o artigo:
Observação importante sobre o Banco de dados tempdb
O Banco TEMPDB é um recurso para toda a instância SQL Server, portanto, todas as consultas da instância utilizam este banco.
Porém, caso a instância SQL Server tenha muita disputa de alocação de recursos no banco de dados tempdb recomenda-se utilizar algumas boas práticas, como mover o banco tempdb para uma área de disco que possua espaço suficiente para evitar contenção de processamento e lentidão.
Além disso, pode ser que seja necessário a adoção de outras práticas que iremos abordar em uma futura vídeo aula sobre boas práticas e performance.
Antes de mais nada, caso você tenha interesse neste assunto, não esqueça de deixar seu comentário, solicitando este tipo de conteúdo e de se inscrever em nosso canal para não perder nossos tutoriais sobre o assunto.
Vale lembrar que o tempdb será criado pela instância do SQL Server quando o serviço do SQL Server for iniciado.
O tempdb é criado através do banco de dados model e não podemos ou não precisamos fazer um backup deste banco de dados.
✔️ Grupo Banco de Dados : Dicas : Facebook ✔️
▶️ Grupo Facebook : Banco de Dados : Dicas
Outro Recurso de ajuda e apoio em dúvidas é o nosso Grupo Facebook : Banco de Dados : Dicas.
Neste local, os usuários podem ajudar e obter apoio em dúvidas de forma colaborativa.
Participe do grupo enviando dúvidas e ajudando outros usuários.
Referências desta publicação
Banco de dados TempDB
https://docs.microsoft.com/pt-br/sql/relational-databases/databases/tempdb-database?view=sql-server-ver15
Guia de Controle de Versão de Linha e Bloqueio de Transações
https://docs.microsoft.com/pt-br/sql/relational-databases/sql-server-transaction-locking-and-row-versioning-guide?view=sql-server-ver15
Recomendações para reduzir a disputa de alocação no banco de dados tempdb do SQL Server
https://support.microsoft.com/pt-br/help/2154845/recommendations-to-reduce-allocation-contention-in-sql-server-tempdb-d
Obrigado
Esperamos que esta publicação tenha lhe ajudado a aprofundar seus conhecimentos no banco de dados Microsoft SQL Server.
Qual foi sua experiência trabalhando com SQL Server ?
Conte pra nós a sua experiência, adoraríamos saber.
Como entusiasta por banco de dados, queremos enriquecer sua experiência neste assunto.
Se você gostou deste post, compartilhe com seus amigos ou nos acompanhe pelas redes sociais.
Tem alguma opinião, sugestão, dúvida ou observação a fazer ?
Deixe seu comentário.
Além disso, você pode nos ajudar a criar mais conteúdos como este. Como ?
Prestigie nossos anunciantes conhecendo seus produtos e serviços.
É simples e rápido e assim você ajuda a gente a crescer.