<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sybase数据库技术，数据库恢复专家 &#187; 存档数据库</title>
	<atom:link href="http://www.dbainfo.net/tag/%e5%ad%98%e6%a1%a3%e6%95%b0%e6%8d%ae%e5%ba%93/feed" rel="self" type="application/rss+xml" />
	<link>https://www.dbainfo.net</link>
	<description>提供Sybase ASE及Sybase SQL Anywhere数据库修复服务，电话：13811580958(微信)，QQ：289965371！We have many years of experience in recovering data from damanged Sybase devices. Contact us by Phone: +86 13811580958 Wechat: 13811580958 Email: 289965371@qq.com</description>
	<lastBuildDate>Sat, 14 Jun 2025 16:28:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>使用存档数据库archive database实现Sybase ASE对象级别的恢复</title>
		<link>https://www.dbainfo.net/sybase-ase-object-level-recovery-archived-by-archive-database.htm</link>
		<comments>https://www.dbainfo.net/sybase-ase-object-level-recovery-archived-by-archive-database.htm#comments</comments>
		<pubDate>Fri, 15 Jul 2011 02:49:40 +0000</pubDate>
		<dc:creator>dbainfo</dc:creator>
				<category><![CDATA[Sybase ASE]]></category>
		<category><![CDATA[archive database]]></category>
		<category><![CDATA[存档数据库]]></category>

		<guid isPermaLink="false">http://www.dbainfo.net/?p=913</guid>
		<description><![CDATA[存档数据库访问通过将数据库转储（&#8220;存档&#8221;）视作传统的只读数据库，从而允许数据库管理员验证或选择性地恢复数据库转储中的数据，此类数据库也称作&#8220;存档数据库&#8221;。 与传统数据库不同，存档数据库使用实际的数据库转储作为其主磁盘存储设备，利用最小的传统存储量来表示数据库转储恢复过程中产生的新页或修改页。由于数据库转储已包含许多（或大多数）数据库页的映像，因此不必使用 Backup Server 将页从存档转换为传统的数据库存储，就可以装载存档数据库。因此，装载速度明显快于传统数据库。 &#160; 存档数据库的用途： 1.对从生产数据库生成的转储的最新副本运行数据库一致性检查。 2.检查数据库转储的完整性。 3.数据库转储的对象级别恢复。 使用存档数据库的典型步骤： 1.创建scratch数据库 use master go disk init name=&#39;scratchdb_dat&#39;, physname=&#39;d:\syb_data\scratchdb_dat.dat&#39;, size=&#39;10m&#39; go disk init name=&#39;scratchdb_log&#39;, physname=&#39;d:\syb_data\scratchdb_log.dat&#39;, size=&#39;5m&#39; go create database scratchdb on scratchdb_dat=&#39;10m&#39; log on scratchdb_log=&#39;5m&#39; go 2.将刚创建的数据库指定为空数据库 sp_dboption &#34;scratchdb&#34;,&#34;scratch database&#34;,&#34;true&#34; go 打开检查点自动截断日志的选项： sp_dboption &#34;scratchdb&#34;,&#34;trunc. log on chkpt&#34;,&#34;true&#34; go 3.创建存档数据库(archive database) use master go disk init [...]]]></description>
			<content:encoded><![CDATA[<p>存档数据库访问通过将数据库转储（&ldquo;存档&rdquo;）视作传统的只读数据库，从而允许数据库管理员验证或选择性地恢复数据库转储中的数据，此类数据库也称作&ldquo;存档数据库&rdquo;。</p>
<p>	与传统数据库不同，存档数据库使用实际的数据库转储作为其主磁盘存储设备，利用最小的传统存储量来表示数据库转储恢复过程中产生的新页或修改页。由于数据库转储已包含许多（或大多数）数据库页的映像，因此不必使用 Backup Server 将页从存档转换为传统的数据库存储，就可以装载存档数据库。因此，装载速度明显快于传统数据库。<br />
	&nbsp;<br />
	<strong>存档数据库的用途：</strong><br />
	1.对从生产数据库生成的转储的最新副本运行数据库一致性检查。<br />
	2.检查数据库转储的完整性。<br />
	3.数据库转储的对象级别恢复。</p>
<p>
	<span style="font-size:14px;"><strong>使用存档数据库的典型步骤：</strong></span><br />
	<span id="more-913"></span><br />
	<strong>1.创建scratch数据库</strong></p>
<p>	use master<br />
	go</p>
<p>	disk init<br />
	name=&#39;scratchdb_dat&#39;,<br />
	physname=&#39;d:\syb_data\scratchdb_dat.dat&#39;,<br />
	size=&#39;10m&#39;<br />
	go</p>
<p>	disk init<br />
	name=&#39;scratchdb_log&#39;,<br />
	physname=&#39;d:\syb_data\scratchdb_log.dat&#39;,<br />
	size=&#39;5m&#39;<br />
	go</p>
<p>	create database scratchdb on scratchdb_dat=&#39;10m&#39; log on scratchdb_log=&#39;5m&#39;<br />
	go</p>
<p>	<strong>2.将刚创建的数据库指定为空数据库</strong><br />
	sp_dboption &quot;scratchdb&quot;,&quot;scratch database&quot;,&quot;true&quot;<br />
	go</p>
<p>	打开检查点自动截断日志的选项：<br />
	sp_dboption &quot;scratchdb&quot;,&quot;trunc. log on chkpt&quot;,&quot;true&quot;<br />
	go</p>
<p>	<strong><br />
	3.创建存档数据库(archive database)</strong><br />
	use master<br />
	go<br />
	disk init<br />
	name=&#39;archivedb_dev&#39;,<br />
	physname=&#39;d:\syb_data\archivedb_dev.dat&#39;,<br />
	size=&#39;20m&#39;<br />
	go</p>
<p>	create archive database archivedb<br />
	on archivedb_dev=&#39;20m&#39;<br />
	with scratch_database = scratchdb<br />
	go</p>
<p>	使用sp_helpdb archivedb查看数据库状态，</p>
<blockquote>
<p>1&gt; sp_helpdb archivedb<br />
		2&gt; go<br />
		&nbsp;name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; db_size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; owner dbid created<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; status<br />
		&nbsp;--------- ------------- ----- ---- ------------<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --------------------------------------------------------------------------<br />
		&nbsp;archivedb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20.0 MB sa&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6 Jul 15, 2011<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong><span style="color:#f00;">don&#39;t recover, read only, no free space acctg, mixed log and data, archive</span></strong></p>
<p>		(1 row affected)<br />
		&nbsp;name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; attribute_class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; attribute&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int_value char_value<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; comments<br />
		&nbsp;--------- ----------------------- ---------------- --------- ----------<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --------<br />
		&nbsp;archivedb Archive Database Access scratch database&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NULL scratchdb<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NULL<br />
		&nbsp;device_fragments&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; usage<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; created&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; free kbytes<br />
		&nbsp;------------------------------ ------------- --------------------<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ------------------------- ----------------<br />
		&nbsp;archivedb_dev&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20.0 MB data only<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Jul 15 2011 10:35AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20396<br />
		(return status = 0)<br />
		1&gt; use archivedb<br />
		2&gt; go<br />
		Msg 966, Level 14, State 1:<br />
		Server &#39;TEST&#39;, Line 1:<br />
		The archive database with id &#39;6&#39; is unavailable as it is yet to be loaded.</p>
</blockquote>
<p>可以看到存档数据库archivedb是只读的，目前不可访问。</p>
<p>
	<strong>4.装载一个数据库转储文件</strong><br />
	load database archivedb from &quot;d:\test.dmp&quot;<br />
	go</p>
<p><span style="color:#f00;">不能装载利用&ldquo;compress::&rdquo;形式生成的备份文件</span>，只能装载未压缩备份文件或者使用with compression=N形式的备份文件。</p>
<p>	<strong>5.使数据库联机</strong><br />
	online database archivedb<br />
	go</p>
<p>	online database 执行撤消恢复操作，在此期间，已修改或分配的页可能会重新映射到修改页面区域。<br />
	若装载数据库时使用了 with norecovery，则您不需要将此数据库联机，因为装载过程会自动使数据库联机，而不用运行恢复撤消过程。</p>
<p>	<strong>6.使用 dbcc 命令检查存档数据库的一致性</strong><br />
	dbcc checkdb(archivedb)<br />
	go</p>
<p>	在上面的装载数据库转储文件步骤中也可以使用：<br />
	1&gt; load database archivedb from &quot;d:\test.dmp&quot; with norecovery<br />
	2&gt; go<br />
	The archive database &#39;archivedb&#39; has been brought online automatically. It may<br />
	have some inconsistencies as a result of not running recovery.</p>
<p>	load database 命令的 with norecovery 选项允许将数据库转储装载到存档数据库中而不恢复任何数据，从而可减少装载所需的时间。</p>
<p>
	&nbsp;</p>
<p><span style="font-size: 14px;"><strong>演示对象级别的恢复</strong></span><br />
	&nbsp;</p>
<p><strong>1.准备测试环境<br />
	</strong></p>
<blockquote>
<p>--*****************************************************<br />
		use PDB<br />
		go<br />
		create table obj_level_recover(id int not null,name varchar(30) null)<br />
		go<br />
		insert into obj_level_recover<br />
		select id,name from sysobjects <br />
		go<br />
		commit<br />
		go</p>
<p>		select getdate()<br />
		go<br />
		dump database PDB to &#39;d:\PDB.dmp&#39;<br />
		go</p>
<p>		--*****************************************************<br />
		--误更新数据<br />
		update obj_level_recover<br />
		set id=id+10<br />
		go<br />
		--创建另外一张测试表<br />
		create table testtbl(id int not null,name varchar(50) null)<br />
		go<br />
		insert into testtbl values(1,&#39;存档数据库 archive database&#39;)<br />
		insert into testtbl values(2,&#39;对象级别恢复 object level recovery&#39;)<br />
		go</p>
<p>		select getdate()<br />
		go<br />
		--日志备份1<br />
		dump tran PDB to &#39;d:\PDB_tran1.dmp&#39;<br />
		go<br />
		--*****************************************************</p>
<p>		--误删除表obj_level_recover<br />
		drop table obj_level_recover<br />
		go<br />
		insert into testtbl values(3,&#39;load database ... with norecovery&#39;)<br />
		go<br />
		commit<br />
		go<br />
		select getdate()<br />
		go<br />
		--误删除表 testtbl<br />
		drop table testtbl<br />
		go<br />
		--日志备份2<br />
		dump tran PDB to &#39;d:\PDB_tran2.dmp&#39;<br />
		go<br />
		--*****************************************************<br />
		&nbsp;</p>
</blockquote>
<p>分析测试环境中的备份策略，发现表obj_level_recover在全备后被误更新，且更新后的数据保留在了日志备份1中。测试表testtbl在日志备份1后被误删除，数据库日志备份2中包含测试表testtbl新插入的记录但是该表已被删除。</p>
<p>&nbsp;</p>
<p><strong>2.对象级别的恢复步骤<br />
	</strong></p>
<p>继续使用上面创建好的存档数据库archivedb。为了恢复误删除的表obj_level_recover，首先做一个全库的恢复。</p>
<blockquote>
<p>load database archivedb from &#39;d:\PDB.dmp&#39;<br />
		go<br />
		online database archivedb<br />
		go</p>
</blockquote>
<p>导出误删除表obj_level_recover的数据，使用bcp或者select into。</p>
<blockquote>
<p>bcp archivedb..obj_level_recover out d:\obj_level_recover.bcpout -c -Usa -P -Stest</p>
</blockquote>
<p>或者</p>
<blockquote>
<p>select * into tempdb.dbo.BAK_obj_level_recover from archivedb..obj_level_recover</p>
</blockquote>
<p><span style="color:#f00;"><strong>注意：select into新创建的表不要放在存档数据库archivedb中，因为archivedb是只读的。</strong></span></p>
<p>&nbsp;</p>
<p>恢复另外一张测试表testtbl的数据，</p>
<blockquote>
<p>load tran archivedb from &#39;d:\PDB_tran1.dmp&#39;</p>
<p>go</p>
<p>online database archivedb</p>
<p>go</p>
<p>use archivedb</p>
<p>go</p>
</blockquote>
<p>1&gt; select * from testtbl<br />
	2&gt; go<br />
	&nbsp;id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name<br />
	&nbsp;----------- --------------------------------------------------<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 存档数据库 archive database<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2 对象级别恢复 object level recovery</p>
<p>	(2 rows affected)</p>
<p>以上只恢复了测试表testtbl的部分数据。在日志备份1后，测试表testtbl也进行了一些更新操作。如果想恢复testtbl在被删除前的数据的话，需要使用基于时间点的日志恢复技术。存档数据库的日志恢复不具备时间点恢复的功能。只能使用传统的数据库恢复方法了。</p>
<blockquote>
<p>use master<br />
		go<br />
		load tran archivedb from &#39;d:\PDB_tran2.dmp&#39;<br />
		go<br />
		online database archivedb<br />
		go</p>
</blockquote>
<p>1&gt; select *&nbsp; from testtbl<br />
	2&gt; go<br />
	Msg 208, Level 16, State 1:<br />
	Server &#39;TEST&#39;, Line 2:<br />
	testtbl not found. Specify owner.objectname or use sp_help to check whether the object exists (sp_help may produce lots of output).</p>
<p>可见，使用存档数据库的日志恢复功能不能实现恢复表到误操作前的状态的功能！</p>
<p>&nbsp;</p>
<p><span style="font-size:14px;"><strong>查看存档数据库相关的属性</strong></span></p>
<blockquote>
<p>1&gt; sp_helpdb archivedb<br />
		2&gt; go<br />
		&nbsp;name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; db_size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; owner dbid created&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; status<br />
		&nbsp;--------- ------------- ----- ---- ------------ ---------------------------------------<br />
		&nbsp;archivedb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20.0 MB sa&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6 Jul 15, 2011 read only, no free space acctg, archive</p>
<p>		(1 row affected)<br />
		&nbsp;name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; attribute_class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; attribute&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int_value char_value&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; comments<br />
		&nbsp;--------- ----------------------- ----------------------- --------- ---------------- --------<br />
		&nbsp;archivedb<strong> Archive Database Access </strong><span style="color:#f00;">scratch database</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NULL scratchdb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NULL<br />
		&nbsp;archivedb <strong>Archive Database Access</strong> <span style="color:#f00;">dump device</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 d:\PDB.dmp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NULL<br />
		&nbsp;archivedb <strong>Archive Database Access</strong> <span style="color:#f00;">transaction dump device</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2 d:\PDB_tran2.dmp NULL<br />
		&nbsp;device_fragments&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; usage&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; created&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; free kbytes<br />
		&nbsp;------------------------------ ------------- -------------------- ------------------------- ----------------<br />
		&nbsp;archivedb_dev&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 19.0 MB data only&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Jul 15 2011 11:37AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 19244<br />
		&nbsp;archivedb_dev&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.0 MB data only&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Jul 15 2011 11:37AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1008<br />
		(return status = 0)</p>
<p>1&gt; select * from master.dbo.sysusages where dbid=6<br />
		2&gt; go<br />
		&nbsp;dbid&nbsp;&nbsp; segmap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lstart&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vstart&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pad&nbsp;&nbsp;&nbsp; unreservedpgs crdate&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vdevno<br />
		&nbsp;------ ----------- ----------- ----------- ----------- ------ ------------- -------------------------- -----------<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 128&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4864&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp; NULL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4811&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Jul 15 2011 11:37AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>11</strong><br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 256&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4864&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 256&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 9728&nbsp;&nbsp; NULL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 252&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Jul 15 2011 11:37AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>11</strong></p>
<p>		(2 rows affected)</p>
</blockquote>
<p><strong>查看存档数据库archivedb的虚拟设备：</strong></p>
<p>select class,attribute,object_type,object_cinfo,object from master.dbo.sysattributes where class=28</p>
<blockquote>
<p>1&gt; sp_autoformat &#39;sysattributes&#39;,&#39;class,attribute,object_type,object_cinfo,object&#39;,&#39; where class=28&#39;<br />
		2&gt; go<br />
		&nbsp;class attribute object_type object_cinfo object<br />
		&nbsp;----- --------- ----------- ------------ ------<br />
		&nbsp;&nbsp;&nbsp; 28&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scratchdb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6<br />
		&nbsp;&nbsp;&nbsp; 28&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>SYSDEV$__12</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6<br />
		&nbsp;&nbsp;&nbsp; 28&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2 D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>SYSDEV$__14&nbsp;</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6</p>
<p>		(3 rows affected)</p>
</blockquote>
<p><strong>存档数据库的虚拟逻辑设备信息：</strong></p>
<blockquote>
<p>1&gt; sp_helpdevice SYSDEV$__12<br />
		2&gt; go<br />
		&nbsp;device_name physical_name description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; status cntrltype vdevno vpn_low<br />
		&nbsp;vpn_high<br />
		&nbsp;----------- ------------- ------------------------------------------------------------- ------ --------- ------ -------<br />
		&nbsp;--------<br />
		&nbsp;SYSDEV$__12 d:\PDB.dmp&nbsp;&nbsp;&nbsp; file system device, special, <strong>archive database disk, read-only</strong>&nbsp;&nbsp;&nbsp;&nbsp; 12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
		&nbsp;&nbsp;&nbsp;&nbsp; 1253</p>
<p>		(1 row affected)<br />
		(return status = 0)<br />
		1&gt; sp_helpdevice SYSDEV$__14<br />
		2&gt; go<br />
		&nbsp;device_name physical_name&nbsp;&nbsp;&nbsp; description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; status cntrltype vdevno vpn_<br />
		low vpn_high<br />
		&nbsp;----------- ---------------- ------------------------------------------------------------- ------ --------- ------ ----<br />
		--- --------<br />
		&nbsp;SYSDEV$__14 d:\PDB_tran2.dmp file system device, special, <strong>archive database disk, read-only</strong>&nbsp;&nbsp;&nbsp;&nbsp; 12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 14<br />
		&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 66</p>
<p>		(1 row affected)<br />
		(return status = 0)</p>
</blockquote>
<p><strong>查看存档数据库的页面映射关系表：</strong></p>
<blockquote>
<p>1&gt; select top 10 *&nbsp; from scratchdb..sysaltusages<br />
		2&gt; go<br />
		&nbsp;dbid&nbsp;&nbsp; location&nbsp;&nbsp;&nbsp; lstart&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vstart&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vdevno&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; segmap<br />
		&nbsp;------ ----------- ----------- ----------- ----------- ----------- -----------<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 24&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10234&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 80&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10236&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 227&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 74&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 264&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 528&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 272&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 532&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 280&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 534&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 288&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 538&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 296&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 540&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 304&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 544&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3</p>
<p>		(10 rows affected)</p>
</blockquote>
<p><strong>删除归档数据库：</strong></p>
<blockquote>
<p>drop database archivedb</p>
<p>go</p>
</blockquote>
<p><strong>再次查看存档数据库相关的信息：</strong></p>
<blockquote>
<p>1&gt; select count(*) from master.dbo.sysattributes where class=28<br />
		2&gt; go</p>
<p>		&nbsp;-----------<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0</p>
<p>		(1 row affected)<br />
		1&gt; select name from master..sysdevices where name in (&#39;SYSDEV$__12&#39;,&#39;SYSDEV$__14&#39;)<br />
		2&gt; go<br />
		&nbsp;name<br />
		&nbsp;------------------------------</p>
<p>		(0 rows affected)<br />
		1&gt; select count(*) from scratchdb..sysaltusages<br />
		2&gt; go</p>
<p>		&nbsp;-----------<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0</p>
<p>		(1 row affected)</p>
</blockquote>
<p>可见，系统表sysdevices中的虚拟逻辑设备&#39;SYSDEV$__12&#39;,&#39;SYSDEV$__14&#39;被删除，&ldquo;空数据库&rdquo;scratchdb中的页面映射表sysaltusages也被清空了。</p>
<p>--EOF--</p>
<div style="clear: both; margin: 10px 0pt; border: 1px dashed rgb(153, 153, 153); font-size: 12px; padding: 5px 10px;">
<li>本文链接地址：<a href="https://www.dbainfo.net/sybase-ase-object-level-recovery-archived-by-archive-database.htm">https://www.dbainfo.net/sybase-ase-object-level-recovery-archived-by-archive-database.htm</a>；</li>
<li>本文为dbainfo个人原创，请在尊重作者劳动成果的前提下进行转载；</li>
<li>转载务必注明原始出处 : <a href="https://www.dbainfo.net/">Sybase数据库技术，数据库恢复专家</a>；</li>
<li>对《<a href="https://www.dbainfo.net/sybase-ase-object-level-recovery-archived-by-archive-database.htm">使用存档数据库archive database实现Sybase ASE对象级别的恢复</a>》有何疑问或见解，请在本文下方发表；</li>
<li>对网站还有其他问题或建议，请提交在<a href="https://www.dbainfo.net/messages" target="_blank">留言板</a>，谢谢！</li>
</div>
<h2  class="related_post_title">随机日志</h2><ul class="related_post"><li>2014-12-20 -- <a href="https://www.dbainfo.net/rs_certifications.htm" title="Sybase Replication Server各版本认证情况">Sybase Replication Server各版本认证情况</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-asa-cr-number-7.htm" title="SAP SQL Anywhere的所有已知BUG列表（7）">SAP SQL Anywhere的所有已知BUG列表（7）</a> (0)</li><li>2010-12-19 -- <a href="https://www.dbainfo.net/imgrate-ase-database-referencial-table-scripts-execute-twice.htm" title="迁移ASE数据库的表之间存在引用时脚本执行情况">迁移ASE数据库的表之间存在引用时脚本执行情况</a> (0)</li><li>2010-03-18 -- <a href="https://www.dbainfo.net/sybase-release-and-versions.htm" title="Sybase发行版本（Release）术语">Sybase发行版本（Release）术语</a> (0)</li><li>2013-09-08 -- <a href="https://www.dbainfo.net/get-current-running-sql.htm" title="查看ASE v15正在执行的SQL语句内容">查看ASE v15正在执行的SQL语句内容</a> (0)</li><li>2011-02-25 -- <a href="https://www.dbainfo.net/sybase-ase155-new-features.htm" title="SYBASE ASE 15.5六大新特性揭秘">SYBASE ASE 15.5六大新特性揭秘</a> (0)</li><li>2010-09-14 -- <a href="https://www.dbainfo.net/sybase-ase-forget-sa-password.htm" title="在sybase中找回丢失的sa密码">在sybase中找回丢失的sa密码</a> (0)</li><li>2015-09-03 -- <a href="https://www.dbainfo.net/sap-iq-manual-index2.htm" title="SAP IQ16.0 SP03中文版官方手册目录列表（2）">SAP IQ16.0 SP03中文版官方手册目录列表（2）</a> (0)</li><li>2014-06-09 -- <a href="https://www.dbainfo.net/cursor_updatable_for_read_only_for_update.htm" title="游标可更新与for read only/for update">游标可更新与for read only/for update</a> (0)</li><li>2010-06-01 -- <a href="https://www.dbainfo.net/sybase-iq15-1-license-out-of-time-grace-period.htm" title="关于Sybase IQ15.1试用版到期后继续试用的问题解决">关于Sybase IQ15.1试用版到期后继续试用的问题解决</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>https://www.dbainfo.net/sybase-ase-object-level-recovery-archived-by-archive-database.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
