當前位置:首頁 » 編程語言 » sql如何恢復多個用戶
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql如何恢復多個用戶

發布時間: 2022-08-18 07:17:32

㈠ 如何恢復XP刪除sql賬戶

我的電腦右鍵→管理→本地用戶和組→使用者→右鍵新用戶→添加SQLDebugger→確定,就可以了。

㈡ SQL多用戶訪問資料庫如何解決的沖突

sql多用戶訪問資料庫其實就是事務並發,會引起如下問題:
1、臟讀:一個事務讀取到了另外一個事務沒有提交的數據
事務1:更新一條數據
事務2:讀取事務1更新的記錄
事務1:調用commit進行提交
此時事務2讀取到的數據是保存在資料庫內存中的數據,稱為臟讀。
讀到的數據為臟數據
詳細解釋:
臟讀就是指:當一個事務正在訪問數據,並且對數據進行了修改,而這種修改還沒有提交到資料庫中,這時,
另外一個事務也訪問這個數據,然後使用了這個數據。因為這個數據是還沒有提交的數據,那麼另外一個
事務讀到的這個數據是臟數據,依據臟數據所做的操作可能是不正確的。
2、不可重復讀:在同一事務中,兩次讀取同一數據,得到內容不同
事務1:查詢一條記錄
事務2:更新事務1查詢的記錄
事務2:調用commit進行提交
事務1:再次查詢上次的記錄
此時事務1對同一數據查詢了兩次,可得到的內容不同,稱為不可重復讀。
3、幻讀:同一事務中,用同樣的操作讀取兩次,得到的記錄數不相同
事務1:查詢表中所有記錄
事務2:插入一條記錄
事務2:調用commit進行提交
事務1:再次查詢表中所有記錄
此時事務1兩次查詢到的記錄是不一樣的,稱為幻讀
詳細解釋:
幻讀是指當事務不是獨立執行時發生的一種現象,例如第一個事務對一個表中的數據進行了修改,
這種修改涉及到表中的全部數據行。同時,第二個事務也修改這個表中的數據,這種修改是向表
中插入一行新數據。那麼,以後就會發生操作第一個事務的用戶發現表中還有沒有修改的數據行,
就好象發生了幻覺一樣。
處理以上隔離級別的問題,採用如下方是:
事務隔離五種級別:
TRANSACTION_NONE 不使用事務。
TRANSACTION_READ_UNCOMMITTED 允許臟讀。
TRANSACTION_READ_COMMITTED 防止臟讀,最常用的隔離級別,並且是大多數資料庫的默認隔離級別
TRANSACTION_REPEATABLE_READ 可以防止臟讀和不可重復讀,
TRANSACTION_SERIALIZABLE 可以防止臟讀,不可重復讀取和幻讀,(事務串列化)會降低資料庫的效率
以上的五個事務隔離級別都是在Connection介面中定義的靜態常量,
使用setTransactionIsolation(int level) 方法可以設置事務隔離級別。
如:con.setTransactionIsolation(Connection.REPEATABLE_READ);
注意:事務的隔離級別受到資料庫的限制,不同的資料庫支持的的隔離級別不一定相同
1 臟讀:修改時加排他鎖,直到事務提交後才釋放,讀取時加共享鎖,讀取完釋放事務1讀取數據時加上共享鎖後(這 樣在事務1讀取數據的過程中,其他事務就不會修改該數據),不允許任何事物操作該數據,只能讀取,之後1如果有更新操作,那麼會轉換為排他鎖,其他事務更 無權參與進來讀寫,這樣就防止了臟讀問題。
但是當事務1讀取數據過程中,有可能其他事務也讀取了該數據,讀取完畢後共享鎖釋放,此時事務1修改數據,修改 完畢提交事務,其他事務再次讀取數據時候發現數據不一致,就會出現不可重復讀問題,所以這樣不能夠避免不可重復讀問題。
2 不可重復讀:讀取數據時加共享鎖,寫數據時加排他鎖,都是事務提交才釋放鎖。讀取時候不允許其他事物修改該數據,不管數據在事務過程中讀取多少次,數據都是一致的,避免了不可重復讀問題
3 幻讀問題:採用的是范圍鎖RangeS RangeS_S模式,鎖定檢索范圍為只讀,這樣就避免了幻影讀問題。

㈢ sql2005 的sa用戶忘記了,如何找回(現可以用windows身份驗證登陸)

先用window帳戶登陸.然後修改你的sa帳戶的許可權.
在安全性--登陸名裡面找到sa用戶--右建-屬性.
你現在可以重新設置sa的密碼.
在伺服器決策里,要把最後一個sysadmin選上.
用戶映射裡面,上面的全選,下面的要勾上最後一個,和倒數第三個db_owner
在狀態裡面.選擇授予和啟動.
你再試試,應該就可以了.
還有一點,右見-你的伺服器-屬性-安全性
,把裡面的身份驗證模式改為sql和windows混合驗證.

㈣ SQL中如果要創建多個用戶,有什麼比較便捷的方式解決這個問題

創建用戶可以使用sp_adser存儲過程,寫個簡單的sql程序,在程序中調用sp_adser就是了。

㈤ 有兩個sql用戶。我應用哪個來還原數據和備份

只要有備份和還原數據的許可權,哪個用戶都是一樣的。、
主要是看一下兩個用戶的許可權設置。

㈥ 備份與恢復sql語句

BACKUP
備份整個資料庫、事務日誌,或者備份一個或多個文件或文件組。有關資料庫備份和恢復操作的更多信息,請參見備份和還原資料庫。
語法
備份整個資料庫:
BACKUP DATABASE { database_name | @database_name_var } TO <backup_device > [ ,...n ]
[ WITH
[ BLOCKSIZE = { blocksize | @blocksize_variable } ]
[ [ , ] DESCRIPTION = { 'text' | @text_variable } ]
[ [ , ] DIFFERENTIAL ]
[ [ , ] EXPIREDATE = { date | @date_var }
| RETAINDAYS = { days | @days_var } ]
[ [ , ] PASSWORD = { password | @password_variable } ]
[ [ , ] FORMAT | NOFORMAT ]
[ [ , ] { INIT | NOINIT } ]
[ [ , ] MEDIADESCRIPTION = { 'text' | @text_variable } ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable} ]
[ [ , ] NAME = { backup_set_name | @backup_set_name_var } ]
[ [ , ] { NOSKIP | SKIP } ]
[ [ , ] { NOREWIND | REWIND } ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] RESTART ]
[ [ , ] STATS [ = percentage ] ]
]

備份特定的文件或文件組:

BACKUP DATABASE { database_name | @database_name_var }
< file_or_filegroup > [ ,...n ]
TO < backup_device > [ ,...n ]
[ WITH
[ BLOCKSIZE = { blocksize | @blocksize_variable } ]
[ [ , ] DESCRIPTION = { 'text' | @text_variable } ]
[ [ , ] DIFFERENTIAL ]
[ [ , ] EXPIREDATE = { date | @date_var }
| RETAINDAYS = { days | @days_var } ]
[ [ , ] PASSWORD = { password | @password_variable } ]
[ [ , ] FORMAT | NOFORMAT ]
[ [ , ] { INIT | NOINIT } ]
[ [ , ] MEDIADESCRIPTION = { 'text' | @text_variable } ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable} ]
[ [ , ] NAME = { backup_set_name | @backup_set_name_var } ]
[ [ , ] { NOSKIP | SKIP } ]
[ [ , ] { NOREWIND | REWIND } ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] RESTART ]
[ [ , ] STATS [ = percentage ] ]
]

備份一個事務日誌:

BACKUP LOG { database_name | @database_name_var }
{
TO < backup_device > [ ,...n ]
[ WITH
[ BLOCKSIZE = { blocksize |@blocksize_variable } ]
[ [ , ] DESCRIPTION = { 'text' |@text_variable } ]
[ [ ,] EXPIREDATE = { date | @date_var }
| RETAINDAYS = { days |@days_var } ]
[ [ , ] PASSWORD = { password |@password_variable } ]
[ [ , ] FORMAT | NOFORMAT ]
[ [ , ] { INIT | NOINIT } ]
[ [ , ] MEDIADESCRIPTION = { 'text' |@text_variable } ]
[ [ , ] MEDIANAME = { media_name |@media_name_variable } ]
[ [ , ] MEDIAPASSWORD = { mediapassword |@mediapassword_variable } ]
[ [ , ] NAME = { backup_set_name |@backup_set_name_var } ]
[ [ , ] NO_TRUNCATE ]
[ [ , ] { NORECOVERY | STANDBY =undo_file_name } ]
[ [ , ] { NOREWIND | REWIND } ]
[ [ , ] { NOSKIP | SKIP } ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] RESTART ]
[ [ , ] STATS [ = percentage ] ]
]
}

< backup_device > ::=
{
{ logical_backup_device_name |@logical_backup_device_name_var }
|
{ DISK | TAPE } =
{ 'physical_backup_device_name'| @physical_backup_device_name_var }
}

< file_or_filegroup > ::=
{
FILE = { logical_file_name |@logical_file_name_var }
|
FILEGROUP = { logical_filegroup_name |@logical_filegroup_name_var }
}

截斷事務日誌:

BACKUP LOG { database_name | @database_name_var }
{
[ WITH
{ NO_LOG | TRUNCATE_ONLY } ]
}

參數
DATABASE

指定一個完整的資料庫備份。假如指定了一個文件和文件組的列表,那麼僅有這些被指定的文件和文件組被備份。
說明 在進行完整資料庫備份或差異資料庫備份時,Microsoft�0�3 SQL Server�6�4 備份足夠的事務日誌,以生成一個將在還原資料庫時使用的一致的資料庫。在 master 資料庫上只能採用完整資料庫備份。
{ database_name | @database_name_var }
指定了一個資料庫,從該資料庫中對事務日誌、部分資料庫或完整的資料庫進行備份。如果作為變數 (@database_name_var) 提供,則可將該名稱指定為字元串常量 (@database_name_var = databasename) 或字元串數據類型(ntext 或 text 數據類型除外)的變數。< backup_device >
指定備份操作時要使用的邏輯或物理備份設備。可以是下列一種或多種形式:
{ logical_backup_device_name } | { @logical_backup_device_name_var }
是由sp_admpdevice 創建的備份設備的邏輯名稱,資料庫將備份到該設備中,其名稱必須遵守標識符規則。如果將其作為變數 (@logical_backup_device_name_var) 提供,則可將該備份設備名稱指定為字元串常量 (@logical_backup_device_name_var = logical backupdevice name) 或字元串數據類型(ntext 或 text 數據類型除外)的變數。
{ DISK | TAPE } =
'physical_backup_device_name' | @physical_backup_device_name_var
允許在指定的磁碟或磁帶設備上創建備份。在執行 BACKUP 語句之前不必存在指定的物理設備。如果存在物理設備且 BACKUP 語句中沒有指定 INIT 選項,則備份將追加到該設備。
當指定 TODISK 或 TO TAPE 時,請輸入完整路徑和文件名。例如,DISK = 'C:\Program Files\Microsoft SQLServer\MSSQL\BACKUP\Mybackup.dat' 或 TAPE = '\\.\TAPE0'。
說明 對於備份到磁碟的情況,如果輸入一個相對路徑名,備份文件將存儲到默認的備份目錄中。該目錄在安裝時被設置並且存儲在KEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\MSSQLServer 目錄下的BackupDirectory 注冊表鍵值中。

</p>

㈦ 如何恢復sql 2000資料庫

(1)如果有備份文件,並且原始資料庫不存在,
還原的時候不需要新建資料庫,還原的時候設置好新的物理文件的路徑就可以了

(2)如果原始資料庫存在,是直接替換掉原始資料庫的,除非另外設置了新的物理文件路徑

(3)如果還原的是master等系統資料庫,需要先把資料庫設置成單用戶模式,才能還原

㈧ 如何用備份到本地的資料庫恢復用戶個人空間數據

兩個方法:1、從你備份的
sql
文件里摳出個人空間信息相關數據進行恢復,這個方法可操作性比較差;2、在本地新建個
Dz
+
SS
完全恢復你目前的備份數據,然後再備份個人空間數據,到空間上恢復。

㈨ sql server資料庫從單用戶模式改為多用戶模式

今天想在sql
server2005下復制一個資料庫,結果最後一步出錯,復制沒成功反而導致資料庫打不開了,
名稱後出現"單個用戶",估計是進行復制的時候自動將其改為了單用戶模式,可通過執行如下語句恢復多用戶模式。
原理是先kill佔用了資料庫的那個進程,然後設置資料庫為多用戶模式。
USE
master;
GO
DECLARE
@SQL
VARCHAR(MAX);
SET
@SQL=''
SELECT
@SQL=@SQL+';
KILL
'+RTRIM(SPID)
FROM
mastersysprocesses
WHERE
dbid=DB_ID('資料庫名');
EXEC(@SQL);
GO
ALTER
DATABASE
資料庫名
SET
MULTI_USER;

㈩ sqlyog將用戶刪除可以恢復嗎

MySQL開啟binlog後,寫入操作都會記錄到二進制日誌里,可以使用mysqlbinlog查看/導出/恢復數據.

假設你之前進行了 mysqlmp全量備份,和binlog增量備份(在mysqlmp全量備份時使用參數--flush-logs清除全量備份前的binlog).

先恢復之前用mysqlmp進行的全量備份,然後用 mysqlbinlog進行時間點還原:

?

mysql -uroot -prootpwd db_name < db_name.sql
mysqlbinlog --stop-datetime="2013-10-12 12:30:00" /var/log/mysql/mysql-bin.000001 | mysql -uroot -prootpwd

這里假設你的誤操作發生在 2013-10-12 12:30:00之後.

如果你既沒有進行mysqlmp全量備份,也沒有開啟binlog安全日誌,那真的就悲劇了.

評論(0)| 引用此答案| 舉報 (2013-10-13 15:27)