1. smart: 等所有的连接中止后,关闭数据库。如果客户端连接不终止,则无法关闭数据库。
2. fast: 快速关闭数据库, 断开客户端的连接,让已有的事务回滚,然后正常关闭数据库。
3. immediate: 立即关闭数据库,立即停止数据库进程,直接退出,下次启动时会进行实例恢复。
本实验采用immediate方式模拟数据库异常关闭:
(1)创建测试表并插入测试数据
highgo=# select * from t
id |name
----+------
1 |a
(1 row)
highgo=# insert into t values(2,'a')
INSERT 0 1
highgo=# \q
(2)模拟数据库强制关闭
[highgo@sourcedb ~]$ pg_ctl stop -mimmediate
日志: 接收到立即 (immediate) 停止请求
警告: 中断联接, 因为其它服务器进程崩溃
详细信息: Postmaster 命令此服务器进程回滚当前事物并退出, 因为其它服务器进程不正常的退出可能毁坏了共享内存.
提示: 一会儿你将可以重联接数据库并且重复你的命令.
waiting for server to shut down.... done
server stopped
(3)再次启动后,数据库会进行实例恢复
[highgo@sourcedb ~]$ pg_ctl start
server starting
[highgo@sourcedb ~]$ 日志: 数据库系统中断;上一次的启动时间是在2017-04-04 07:58:13 CST
日志: 数据库系统没有正确的关闭处于自动恢复状态中
日志: redo 在 0/1929070 开始
日志: record with zero length at0/19291F0
日志: redo 在 0/19291C0 完成
日志: 上一次完成事务是在日志时间2017-04-04 07:58:22.691571+08完成的.
日志: MultiXact member wraparoundprotections are now enabled
日志: 数据库系统准备接受连接
日志: 已启动autovacuum
(4)验证数据一致性
[highgo@sourcedb ~]$ psql
Password:
psql (3.0.2)
Type "help" for help.
highgo=# select * from t
id |name
----+------
1 |a
2 |a
(2rows)
选择开始菜单中→程序→【Management SQL Server 2008】→【SQL Server Management Studio】命令,打开【SQL Server Management Studio】窗口,并使用Windows或 SQL Server身份验证建立连接。在【对象资源管理器】窗口中展开服务器,然后选择【数据库】节点
右键单击【数据库】节点,从d出来的快捷菜单中选择【新建数据库】命令。
执行上述 *** 作后,会d出【新建数据库】对话框。在对话框、左侧有3个选项,分别是【常规】、【选项】和【文件组】。完成这三个选项中的设置会后,就完成了数据库的创建工作,
在【数据库名称】文本框中输入要新建数据库的名称。例如,这里以“新建的数据库”。
在【所有者】文本框中输入新建数据库的所有者,如sa。根据数据库的使用情况,选择启用或者禁用【使用全文索引】复选框。
在【数据库文件】列表中包括两行,一行是数据库文件,而另一行是日记文件。通过单击下面的【添加】、【删除】按钮添加或删除数据库文件。
切换到【选项页】、在这里可以设置数据库的排序规则、恢复模式、兼容级别和其他属性。
切换到【文件组】页,在这里可以添加或删除文件组。
完成以上 *** 作后,单击【确定】按钮关闭【新建数据库】对话框。至此“新建的数据”数据库创建成功。新建的数据库可以再【对象资源管理器】窗口看到。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)