當前位置:首頁 » 數據倉庫 » 資料庫tape
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫tape

發布時間: 2023-02-15 14:51:57

㈠ 文獻類型標識代表什麼意思

根據GB3469規定,以單字母方式標識以下各種參考文獻類型:

電子文獻的載體類型及其標識

對於非紙張型載體的電子文獻,當被引用為參考文獻時需在參考文獻類型標識中同時標明其載體類型。本規范建議採用雙字母表示電子文獻載體類型:磁帶(magnetic tape)——MT,磁碟(disk)——DK,光碟(CD-ROM)——CD,聯機網路(online)——OL,並以下列格式表示包括了文獻載體類型的參考文獻類型標識:

[文獻類型標識/載體類型標識]

如:[DB/OL]——聯機網上資料庫(database online)

[DB/MT]——磁帶資料庫(database on magnetic tape)

[M/CD]——光碟圖書(monograph on CD-ROM)

[CP/DK]——磁碟軟體(computer program on disk)

[J/OL]——網上期刊(serial online)

[EB/OL]——網上電子公告(electronic bulletin board online)

以紙張為載體的傳統文獻在引作參考文獻時不必註明其載體類型。

㈡ DB2資料庫在linux操作系統的指令有哪些

DB2資料庫命令簡介 1.啟動資料庫 DB2start 2.停止資料庫 DB2stop DB2資料庫在linux相關指令之3.連接資料庫 DB2 connect to o_yd user DB2 using pwd 4.讀資料庫管理程序配置 DB2 get dbm cfg 5.寫資料庫管理程序配置 DB2 update dbm cfg using 參數名 參數值 6.讀資料庫的配置 DB2 connect to o_yd user DB2 using pwd DB2 get db cfg for o_yd 7.寫資料庫的配置 DB2 connect to o_yd user DB2 using pwd DB2 update db cfg for o_yd using 參數名 參數值 8.關閉所有應用連接 DB2 force application all DB2 force application ID1,ID2,,,Idn MODE ASYNC (DB2 list application for db o_yd show detail) 9.備份資料庫 DB2 force application all DB2 backup db o_yd to d: (DB2 initialize tape on \.tape0) (DB2 rewind tape on \.tape0) DB2 backup db o_yd to \.tape0 10.恢復資料庫 DB2 restore db o_yd from d: to d: DB2 restore db o_yd from \.tape0 to d: DB2資料庫在linux相關指令之11.綁定存儲過程 DB2 connect to o_yd user DB2 using pwd DB2 bind c:dfplus.bnd 拷貝存儲過程到伺服器上的C:sqllibfunction目錄中 12.整理表 DB2 connect to o_yd user DB2 using pwd DB2 reorg table ydd DB2 runstats on table ydd with distribution and indexes all 13.導出表數據 DB2 export to c:dftz.txt of del select * from dftz DB2 export to c:dftz.ixf of ixf select * from dftz 14.導入表數據 import from c:123.txt of del insert into ylbx.czyxx DB2 import to c:dftz.txt of del commitcount 5000 messages c:dftz.msg insert into dftz DB2 import to c:dftz.ixf of ixf commitcount 5000 messages c:dftz.msg insert into dftz DB2 import to c:dftz.ixf of ixf commitcount 5000 insert into dftz DB2 import to c:dftz.ixf of ixf commitcount 5000 insert_update into dftz DB2 import to c:dftz.ixf of ixf commitcount 5000 replace into dftz DB2 import to c:dftz.ixf of ixf commitcount 5000 create into dftz (僅IXF) DB2 import to c:dftz.ixf of ixf commitcount 5000 replace_create into dftz (僅IXF) 15.執行一個批處理文件 DB2 -tf 批處理文件名 (文件中每一條命令用 ;結束) 16.自動生成批處理文件 建文本文件:temp.sql select 'runstats on table DB2.' || tabname || ' with distribution and detailed indexes all;' from syscat.tables where tabschema='DB2' and type='T'; DB2 -tf temp.sql>runstats.sql 17.自動生成建表(視圖)語句 在伺服器上:C:sqllibmisc目錄中 DB2 connect to o_yd user DB2 using pwd DB2look -d o_yd -u DB2 -e -p -c c:o_yd.txt DB2資料庫在linux相關指令之18.其他命令 grant dbadm on database to user bb 19select * from czyxx fetch first 1 rows only 20DB2look -d ylbx -u DB2admin -w -asd -a -e -o a.txt21. 顯示當前用戶所有表 list tables 22.列出所有的系統表 list tables for system 23.查看錶結構 DB2 describe select * from user.tables (實習編輯:HJ)

㈢ SQLserver資料庫備份後,怎麼查詢備份的日誌

SQL Server的備份有三種形式:

一是全備份(full backup)

這個備份裡麵包含的內容是值得商榷的,我們知道資料庫有兩種文件,數據文件與日誌文件,全備份是不是將所有的數據文件與日誌文件打包,備份成一個文件? 那麼還原的時候是不是需要做恢復,將備份過後發生的事務接著備份時間點重新執行一邊? 上面的問題細想都是肯定的。全備份做的事情,就是將所有的緩存先flush到磁碟上,不管在進行的事務是否提交,這樣保證了日誌的連續性,數據與日誌的一致性,如果事務沒提交 ,在日誌文件上的標記是active的,這段日誌也就不會被清空,下次恢復的時候,就從這段日誌開始,接著使用新的日誌執行。因此 全備份之前肯定會執行一次checkpoint;、

二是差異備份(differential backup)

這個備份會不會也重復full backup的過程,先執行checkpoint,然後再將上一次備份之後,發生數據頁變化的這些數據頁都備份起來,這部分備份就不會有日誌。但是和全備份一樣,備份的容積體量比較大,差異備份備份的是數據頁,不管這一頁是不是只有一條數據更改了,還是全部更改了;

三是日誌備份(transaction log backup)

日誌備份中需要注意的就是對未提交事務的理解,沒有提交的事務其實還是佔用日誌文件的VLF,shrink並不能回收日誌空間;提交事務的日誌如被備份之後,就會將日誌VLF打上unactive或者truncated標記,這個時候執行shrink就可以回收這部分日誌VLF了。日誌備份體量小,比較適合頻率高的執行,比如每5分鍾執行一次。

全備份:

全備份用到的命令,涉及到兩方面的參數,一是指定相應的備份設備,可以是磁碟,也可以是磁帶;另一方面 就是備份可用的選項,比如是否壓縮,是否加密。

BACKUP DATABASE database

TO backup_device [ ,...n ]

[ WITH with_options [ ,...o ] ] ;


備份設備很講究,可以事先定義好邏輯設備,也可以直接指定物理設備。磁帶備份機倒是沒見過,但是常規的磁碟備份還是可以討論一下的:

我們可以將一個本機帶路徑的物理文件名指定為備份設備:

backup database lenistest

to disk = 'E:Data_BUlenistest5__backup.bck';


也可以將網路上的一個帶路徑的物理文件名指定為備份設備:

backup database AdventureWorks2012

to disk = '\BackupSystemBackupDisk1AW_backupsAdventureWorksData.Bak';


這里有個有趣的現象,如果我們在全備份之後 ,沒有備份好日誌,這個時候故障突然發生了,我們需要作恢復,但是恢復的時候因為會重寫日誌,這樣就會丟失數據,如果不採取額外地措施,系統是會報錯的:


restore database lenistest

from disk = 'E:Data_BUlenistest5__backup.bck'


Msg 3159, Level 16, State 1, Line 6

The tail of the log for the database 「lenistest」 has not been backed
up. Use BACKUP LOG WITH NORECOVERY to backup the log if it contains
work you do not want to lose. Use the WITH REPLACE or WITH STOPAT
clause of the RESTORE statement to just overwrite the contents of the
log.

Msg 3013, Level 16, State 1, Line 6

RESTORE DATABASE is terminating abnormally.



所以如果對丟失的數據不關心或者認為不會丟失數據,可以採用with replace選項來重寫原來的日誌文件進行強制恢復。


restore database lenistest

from disk = 'E:Data_BUlenistest5__backup.bck'

with replace;



差異備份:

差異備份相對全備份,優越的地方在於備份數據量少,但是有趣的是差異備份不能獨立存在(日誌備份也不能獨立存在,他倆只能依附於全備份,也就是說在執行差異備份和日誌備份的時候,必須先有一個全備份做好在那裡), 差異備份必須以一個全備份做基準,在這基礎之上再判斷哪些數據頁是有過更新的,這些更新的數據頁計算出來並被備份起來。

use master;


go


backup database lenistest

to disk = 'E:Data_BUlenistest5__backup.bck';


backup database lenistest

to disk = 'E:Data_BUlenistest5__backup.bck'

with differential;


假如我們沒有事先做好全備份,就直接作差異備份了,那麼這是不成功的:


backup database lenistest

to disk = 'E:Data_BUlenistest5__backup2.bck'

with differential;


Msg 3035, Level 16, State 1, Line 11

Cannot perform a differential backup for database 「lenistest」, because
a current database backup does not exist. Perform a full database
backup by reissuing BACKUP DATABASE, omitting the WITH DIFFERENTIAL
option.

Msg 3013, Level 16, State 1, Line 11

BACKUP DATABASE is terminating abnormally.


日誌備份:

日誌備份相對差異備份來說,體量更小,同樣它也需要全備份事先存在:

backup log lenistestto disk = 'E:Data_BUlenistest5__backup.bck';


假如我沒有事先做好全備份,我們看看直接備份日誌會出現什麼結果:


Msg 4214, Level 16, State 1, Line 15

BACKUP LOG cannot be performed because there is no current database
backup.

Msg 3013, Level 16, State 1, Line 15

BACKUP LOG is terminating abnormally.


提示先做全備份!

備份我們都討論完了,接下來我們看看還原。還原通常有兩個步驟,一是還原,二是恢復。當然我們也可以直接還原不恢復,但是可能會丟失數據,除非全備份之後 ,沒有任何操作。假設我們一天一個全備份,每15分鍾做一個差異備份 ,每5分鍾做一個日誌備份,我們該如何還原我們的資料庫呢?

通常我們首先要知道我們的備份文件名或者物理路徑,這個地方涉及到很多術語很難理解,比如說backup device, backupset, backup media, media set ,media family.

MSDN上有一個解釋,先看這個腳本:


backup database AdventureWorks2012

to tape = '\. ape0'

, tape = '\. ape1'

, tape = '\. ape2'

with format

, medianame = 'MyAdvWorks_MediaSet_1';


解釋說到,這個備份操作產生了一個 media set, 這個media set就是命名為MyAdvWorks_MediaSet_1, 這個media set還有個media header, media header一旦生成,就可以往裡面寫入備份文件了。這段腳本也同時生成了一個橫跨三個tape的備份文件, 他們統稱為backup set.

當我們指定3個backup device作為backup set(備份集)並且執行第一次全備份的時候,接下來所有的備份都需要同時指定這3個backup device作為backup set:


backup database lenistest

to disk = 'E:Data_BUlenistest5__backup01.bck'

, disk = 'E:Data_BUlenistest5__backup02.bck'

, disk = 'E:Data_BUlenistest5__backup03.bck'

with format

, medianame = 'lenistestbackupset';


backup database lenistest

to disk = 'E:Data_BUlenistest5__backup01.bck'

, disk = 'E:Data_BUlenistest5__backup03.bck'

with noinit

, differential

, medianame = 'lenistestbackupset';



Msg 3231, Level 16, State 1, Line 10

The media loaded on 「E:Data_BUlenistest5__backup01.bck」 is formatted
to support 3 media families, but 2 media families are expected
according to the backup device specification.

Msg 3013, Level 16, State 1, Line 10

BACKUP DATABASE is terminating abnormally.


上面我先作了一次全備份,指定了三個backup device作為一份backup set, 接下來作差異備份的時候,我只指定了其中兩個backup device作為backup set, 操作失敗,提示就是少了一個backup device.


backup database lenistest

to disk = 'E:Data_BUlenistest5__backup01.bck'

, disk = 'E:Data_BUlenistest5__backup03.bck'

, disk = 'E:Data_BUlenistest5__backup02.bck'

with noinit

, differential

, medianame = 'lenistestbackupset';


這次我們指定了同樣個數的backup device,但backup device的順序顛倒了一下,操作成功。

到目前為止,我們的腳本已經新建了 1 個media set,名為 lenistestbackupset , 2 個backup set, 第一個backup set是全備份的backup set,另外一個backup set是差異備份。所以每一次備份都會產生一個backup set. Media set產生的時間則是第一次給資料庫作全備份的時候。

這個時候我們需要恢復資料庫,那麼第一步就是要先還原全備份,但是先不恢復,等全備份還原過後,再用差異備份做恢復:

restore database lenistest

from disk = 'E:Data_BUlenistest5__backup01.bck'

, disk = 'E:Data_BUlenistest5__backup03.bck'

, disk = 'E:Data_BUlenistest5__backup02.bck'

with file = 1

, replace

, norecovery;


restore database lenistest

from disk = 'E:Data_BUlenistest5__backup01.bck'

, disk = 'E:Data_BUlenistest5__backup03.bck'

, disk = 'E:Data_BUlenistest5__backup02.bck'

with file = 2

, recovery;


這里一定是用replace來重寫日誌。


select mf.media_set_id

, isnull(ms.name, 'no media name') as media_name

, mf.physical_device_name

, mf.family_sequence_number

, mf.media_family_id

, bs.database_name

, bs.backup_start_date

, bs.backup_finish_date

from backupmediafamily mf

inner join backupset bs

on mf.media_set_id = bs.media_set_id

left join backupmediaset ms

on bs.media_set_id = ms.media_set_id

where bs.database_name = 'lenistest';


上面的腳本可以抓出來這些media family, media set, backup set的信息,如果像上面的例子一樣, 我們用3個backup device來承載備份,那麼這3個backup device組成了一個media family, 按照family_sequence_number來編排,1,2,3。

下面實現一個備份到恢復的全過程例子,分別在full backup, differential backup, log backup之前各出入同樣的數據,看看是不是還原的時候,能正確還原過來:


insert into dbo.dataloading

(

object_id

, object_name

)

select object_id

, name as object_name

from sys.objects;


backup database lenistest

to disk = 'E:Data_BUlenistest5__backup01.bck'

, disk = 'E:Data_BUlenistest5__backup02.bck'

, disk = 'E:Data_BUlenistest5__backup03.bck'

with format

, medianame = 'lenistestbackupset';



insert into dbo.dataloading

(

object_id

, object_name

)

select object_id

, name as object_name

from sys.objects;


backup database lenistest

to disk = 'E:Data_BUlenistest5__backup01.bck'

, disk = 'E:Data_BUlenistest5__backup03.bck'

, disk = 'E:Data_BUlenistest5__backup02.bck'

with noinit

, differential

, medianame = 'lenistestbackupset';



insert into dbo.dataloading

(

object_id

, object_name

)

select object_id

, name as object_name

from sys.objects;


backup log lenistest

to disk = 'E:Data_BUlenistest5__backup01.bck'

, disk = 'E:Data_BUlenistest5__backup03.bck'

, disk = 'E:Data_BUlenistest5__backup02.bck'

with noinit

, medianame = 'lenistestbackupset';


接著我們做還原與恢復:


restore database lenistest

from disk = 'E:Data_BUlenistest5__backup01.bck', disk = 'E:Data_BUlenistest5__backup03.bck', disk = 'E:Data_BUlenistest5__backup02.bck'

with file = 1

, replace

, norecovery;


restore database lenistest

from disk = 'E:Data_BUlenistest5__backup01.bck', disk = 'E:Data_BUlenistest5__backup03.bck', disk = 'E:Data_BUlenistest5__backup02.bck'

with file = 2

, norecovery;


restore database lenistest

from disk = 'E:Data_BUlenistest5__backup01.bck', disk = 'E:Data_BUlenistest5__backup03.bck', disk = 'E:Data_BUlenistest5__backup02.bck'

with file = 3

, recovery;


這里的file選項就是backup set選項,表示第一個備份集,第二個備份集,第三個備份集。如果想還原到最新的故障發生時間點,前面的restore都不能recovery,只有在最後的時候才能作recovery.

如果我們只想恢復全備份的數據,只要執行recovery就可以了,但是數據肯定是少了:

restore database lenistest

from disk = 'E:Data_BUlenistest5__backup01.bck', disk = 'E:Data_BUlenistest5__backup03.bck', disk = 'E:Data_BUlenistest5__backup02.bck'

with file = 1

, replace

, recovery;