DBA30问之系统DB有哪些,都有什么作用,需不需要做备份,为什么,损坏了如何做还原(主要是master库)

DBA30问之系统DB有哪些,都有什么作用,需不需要做备份,为什么,损坏了如何做还原(主要是master库),第1张

这包括实例范围的元数据(例如登录帐户)、 端点、链接服务器和系统配置设置。此外,master数据库还记录了所有其他数据库的 存在、数据库文件的位置以及SQLServer 的初始化信息。因此,如果master数据库 不可用,则SQLServer 无法启动。在SQLServer中,系统对象不再存储在master 数据库中,而是存储在mssqlsystemresource数据库中。 master数据库对系统来说很关键,因此总是要保存它的当前副本。创建另一个数据库, 改变配置值,修改登录账户这样的 *** 作都会修改master数据库,所以总是应该在完成 这些 *** 作之后备份master数据库。master数据库本身不大,做一次备份很快,建议经 常做master数据库的备份。 由于master数据库还记录启动服务器实例所需要的初始化信息,每个其他数据库的主文 件位置。master数据库是SQLServer启动的时候打开的第一个数据库。SQLServer是从 master数据库找到的其他数据库的信息。如果master数据库存在问题,整个SQLServer 都无法正常启动。 如果说是master数据库严重损坏,如果有备份直接还原master数据库即可。如果没有备 份,则需要重建master数据库。重建master数据库将使所有的系统数据库恢复到原始状 态。重建master数据库会删除并重建msdb数据库。这将导致丢失所有计划信息以及备份 和还原历史记录。重建master数据库之后,SQLServer数据库就好比重新安装后一样, 所有用户信息都会丢失,用户数据库需要重新附加,SQLServer任务和计划都要重建。 因此重建master数据库是个万不得已的选择。 在执行任何语句或系统过程来更改master数据库中的信息以后,应备份master数据库 建议不要再master数据库中创建用户对象 导致master数据库更新并要求备份的 *** 作类型包括: 1,创建或删除用户数据库 2,添加或删除文件和文件组 3,添加登陆或其他登陆安全相关 *** 作 4,更改服务器范围的配置选项或者数据库配置选项 5,创建或删除逻辑备份文件 6,配置用于分布式查询和远程调用的服务器,如添加链接服务器或远程登录 恢复master数据库使用的还是RESTORE指令还原master数据库后SQLServer实例将自动停止 关于如何恢复master数据库,在后面将单独写一篇博客 model数据库 用作在SQLServer实例上创建的所有数据库的模板。因为每次启动SQLServer 时都 会创建tempdb,所以model数据库必须始终存在于 SQLServer系统中。 创建数据库是model数据库是SQLSERVER使用的模板model数据库里的全部内容都会被复 制到新的数据库所以这个数据库不建议做任何修改除非是有目的的要建立一些模板 虽然这个数据库的内容一般不会发生改变,但是在SQLServer启动的时候要使用model数 据库某些设置创建新的tempdb。如果没有tempdb,SQLServer无法启动。因此model数据库 必须存在SQLServer系统中。这个数据库也要有备份。 还原model数据库与对用户数据库执行完整的数据库还原相同 tempdb数据库 tempdb系统数据库是一个全局资源,可供连接到SQLServer 实例的所有用户使用,并 可用于保存下列各项: 显式创建的临时用户对象,例如全局或局部临时表、临时存储过程、表变量或游标。 SQLServer数据库引擎创建的内部对象,例如,用于存储假脱机或排序的中间结果的工作表。 由使用已提交读(使用行版本控制隔离或快照隔离事务)的数据库中数据修改事务生成的行版本。 由数据修改事务为实现联机索引 *** 作、多个活动的结果集(MARS)以及AFTER 触发器等功能而生 成的行版本。 tempdb中的 *** 作是最小日志记录 *** 作。这将使事务产生回滚。每次启动SQLServer 时都会重新 创建tempdb,从而在系统启动时总是保持一个干净的数据库副本。在断开联接时会自动删除临时 表和存储过程,并且在系统关闭后没有活动连接。因此tempdb中不会有什么内容从一个SQLServer 会话保存到另一个会话。不允许对tempdb进行备份和还原 *** 作。 资源数据库(mssqlsystemresource) 资源数据库是一个隐藏数据库。可执行系统对象(入系统存储过程和功能)都保存在这里。创建这个数 据库是为了快速安全的升级。如果没有人可以访问到这个数据库,也就没有人可以改变它。简单的用 新的资源数据库替换掉旧的资源数据库,就可以升级到新的,包括新系统对象服务包。不能使用任何 正常方法查看该数据库。但这个数据库任然需要磁盘空间。 mssqlsystemresource数据库从来不做修改,理论上不用备份。 msdb数据库 由SQLServer代理用于计划警报和作业,也可以由其他功能(如ServiceBroker 和数据库邮件)使用 SQLServer将在msdb数据库中自动维护一份完整的在线备份与还原历史记录。这些信息包括执行备份一 方的名称,备份时间和用来存储备份的备份设备。SQLServerManagementStudio利用这些信息提出 计划以还原数据库并应用事务日志备份。 默认情况下msdb使用简单恢复模式。 还原msdb数据库与对用户数据库执行完整的数据库还原相同

首先说明下master库

Master数据库是SQL Server系统最重要的数据库,它记录了SQL Server系统的所有系统信息。这些系统信息包括所有的登录信息、系统设置信息、SQL Server的初始化信息和其他系统数据库及用户数据库的相关信息。因此,如果 master 数据库不可用,则 SQL Server 无法启动。在 SQL Server 2005 中,系统对象不再存储在 master 数据库中,而是存储在 Resource 数据库中。

然后回到你的问题,你应该是认为里面有其他数据库的表,这种应该是误 *** 作创建在里面的。平时默认打开数据库时候,指向的数据库名就是master,如果没留意就会把脚本在这个库里执行的。

如何重建上虚拟的主数据库 (群集) SQL Server 2000年服务器

要重建主SQL Server 2000年数据库,请执行以下步骤:

请确保您在其中执行 Rebuildmexe 的节点受控制 SQL Server 资源。

通过使用 SQL Server 服务管理器,使 SQL Server 虚拟服务器脱机。

请确保原始共享安装文件或 SQL Server 安装光盘可用。

如果您使用 SQL Server 安装 CD,所有文件从 CD 都复制到本地硬盘上。将它们复制到硬盘后,请从文件中删除只读属性。有关详细信息,请参阅以下文章 Microsoft 知识库中相应的文章:

273572错误: Rebuildmexe 实用程序停止响应时源目录是在 CD 上

执行 Rebuildmexe 和点到它:

原始共享的安装文件。

-或者-

从 CD 复制到本地硬盘的文件。

选择Windows 排序规则中,或SQL 排序规则。

Rebuildmexe 程序完成后,请验证您可以使资源联机和它们成功地>

(D)Master数据库

1、 master数据库记录SQL Server系统的所有系统级别信息。是最重要的系统库,记录了SQL Server系统的所有系统信息。包括所有的登录信息、系统设置信息、SQL Server的初始化信息和其它系统数据库及用户数据库的相关信息。

tempdb是一个临时数据库,保存所有的临时表和临时存储过程,以及其他的临时存储空间的要求。Tempdb数据库由整个系统的所有数据库使用。SQL Server每次启动时,tempdb数据库被重新建立。当用户与SQL Server断开连接时,其临时表和存储过程被自动删除。

2、model数据库是为用户创建数据库提供的模板。

1、首先要在本地建立两个mysql服务,指定不同的端口。我这里一个主(3306),一个从(3307)。

2、然后修改主配置文件:

[mysqld]

server-id = 1

binlog-do-db=test #要同步的数据库

#binlog-ignore-db=mysql #不同步的数据库,如果指定了binlog-do-db这里应该可以不用指定的

log-bin=mysql-bin #要生成的二进制日记文件名称

修改从配置文件:

[mysqld]

server-id = 2

log-bin = mysql-bin

replicate-do-db=test

3、在主库添加一个用户 repl 并指定replication权限

create user 'repl'@'127001' identified by 'asdf';

GRANT REPLICATION SLAVE ON TO 'repl'@'127001'; -- --这里我指定数据库(test)时报错,而指定全库()时会成功。

4、保持主从mysql的test数据库初始状态一致。

一般是先将所有的表加读锁,然后copy磁盘上的数据库文件夹。我这里直接停止服务,然后将数据文件拷贝过去。

5、在主数据库里面运行show master status;记下file和position字段对应的参数。

mysql> show master status;

+------------------+----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin000001 | 107 | test | |

+------------------+----------+--------------+------------------+

1 row in set (000 sec)

6、在从库设置它的master:

mysql> change master to master_host='127001',master_port=3306,master_user='repl',master_password='asdf',master_log_file='mysql-bin000001',master_log_pos=107;

Query OK, 0 rows affected (019 sec)

这里的master_log_file和master_log_pos对应刚才show master status记下的参数。

7、在从库开启从数据库复制功能。

slave start;

mysql> slave start;

Query OK, 0 rows affected (000 sec)

在从库可以通过show slave status来查看一些参数。

8 此时在主库创建表或插入数据,在从库就会很快也能看到了。

-- 主库

mysql> create table tianyc_02(b int);

Query OK, 0 rows affected (016 sec)

mysql> insert into tianyc_02 values(2013);

Query OK, 1 row affected (013 sec)

-- 从库

mysql> show tables;

+----------------+

| Tables_in_test |

+----------------+

| tianyc_01 |

| tianyc_02 |

+----------------+

2 rows in set (000 sec)

mysql> select from tianyc_02;

+------+

| b |

+------+

| 2013 |

+------+

1 row in set (000 sec)同理,可以搭建第二、第三个从节点。

以上就是关于DBA30问之系统DB有哪些,都有什么作用,需不需要做备份,为什么,损坏了如何做还原(主要是master库)全部的内容,包括:DBA30问之系统DB有哪些,都有什么作用,需不需要做备份,为什么,损坏了如何做还原(主要是master库)、如何在master数据库中怎么 *** 作其他数据库、如何重建 master 数据库虚拟 SQL Server 实例上等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9811153.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存