當前位置:首頁 » 編程語言 » sql架構損壞
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql架構損壞

發布時間: 2022-12-19 21:24:07

A. sql2005還原資料庫提示不能從其他資料庫選擇備份集

首先、點擊桌面的「sql
server
management
studio」打開,sql2005的管理器,點擊「連接」登錄:
一、新建資料庫
1、新建資料庫
右鍵點擊「資料庫」——「新建資料庫」:
mssql2005備份還原圖文教程
填寫資料庫名,如mydata,選擇資料庫保存路徑,一般可以保持默認地址,點擊「確定」。
2、新建用戶
右鍵點擊「安全性」——「登錄名」——「新建登錄名」:
mssql2005備份還原圖文教程
填寫登錄名,如mydata。選擇「sql
server身份驗證」,輸入密碼。下方的「強制密碼過期」不要選擇,默認資料庫選擇您用戶登陸對應的資料庫,如mydata。如圖:
點擊「用戶映射」,「映射到此登錄名的用戶」勾選對應的資料庫,如mydata。資料庫成員角色勾選「public」和「db_owner」,點「確定」。如圖:
至此新建資料庫就完成了。
二、還原資料庫
首先將資料庫備份bak文件上傳到伺服器,建議放到d:\mssql
目錄
,如mydata.bak。右鍵點擊要還原的資料庫,選擇「任務」——「還原」——「資料庫」,如圖:
注意,如果放在其他目錄,務必保證該目錄先加上mssqluser的完全控制許可權,否則還原或備份會失敗。保存備份的目錄也必須有這個許可權!!
若不是本伺服器上早期的備份,請選擇「源設備」,點右側的「…」查找bak文件,完成後下方會顯示出備份集,「還原」那勾選:
然後點擊「選項」,勾選「覆蓋現有資料庫」,「將資料庫文件還原為:」的文件路徑指向現在的資料庫文件,點擊「確定」就開始還原了,備份太大的話,還原時間要稍微長點:
還原成功後,系統會提示:
還原成功後,請檢查下表的架構是否是dbo:
若是資料庫名或其他架構,如為mydata架構,需要在「安全性」——「架構」,新建一個所有者為dbo的mydata架構。
新建一個所有者為dbo的mydata架構:
三、附加資料庫
首先將您的資料庫mdf和ldf文件上傳到伺服器的某個目錄(一般不要放在系統盤,以免系統損壞造成數據丟失),比如d:\mssql目錄,並給該目錄mssqluser的完全控制許可權。
注意,如果放在其他目錄,務必保證該目錄先加上mssqluser的完全控制許可權,否則還原或備份會失敗。保存備份的目錄也必須有這個許可權!!
其次,右鍵點擊您的資料庫,選擇附加:
點擊添加,添加您的mdf文件:
點擊確定就可以附加成功資料庫了,在資料庫中能看到新附加的資料庫:
注意,如果放在其他目錄,務必保證該目錄先加上mssqluser的完全控制許可權,否則還原或備份會失敗。保存備份的目錄也必須有這個許可權!!

B. sql 語句問題

修改資料庫的時候應該可以添加的是 附屬主數據文件 ,文件的擴展名是 ndf 文件,下面誰 SQL SERVER2000的幫助文檔

Transact-SQL 參考

ALTER DATABASE
在資料庫中添加或刪除文件和文件組。也可用於更改文件和文件組的屬性,例如更改文件的名稱和大小。ALTER DATABASE 提供了更改資料庫名稱、文件組名稱以及數據文件和日誌文件的邏輯名稱的能力。

ALTER DATABASE 支持資料庫選項的設置。在早期版本的 Microsoft® SQL Server™ 中,這些選項可以通過 sp_dboption 存儲過程來設置。在此次發布的版本中,SQL Server 繼續支持 sp_dboption存儲過程,但在未來版本中可能不再支持。可使用 DATABASEPROPERTYEX 函數檢索資料庫選項的當前設置。

語法
ALTER DATABASE database
{ ADD FILE < filespec > [ ,...n ] [ TO FILEGROUP filegroup_name ]
| ADD LOG FILE < filespec > [ ,...n ]
| REMOVE FILE logical_file_name
| ADD FILEGROUP filegroup_name
| REMOVE FILEGROUP filegroup_name
| MODIFY FILE < filespec >
| MODIFY NAME = new_dbname
| MODIFY FILEGROUP filegroup_name {filegroup_property | NAME = new_filegroup_name }
| SET < optionspec > [ ,...n ] [ WITH < termination > ]
| COLLATE < collation_name >
}

< filespec > ::=

( NAME = logical_file_name
[ , NEWNAME = new_logical_name ]
[ , FILENAME = 'os_file_name' ]
[ , SIZE = size ]
[ , MAXSIZE = { max_size | UNLIMITED } ]
[ , FILEGROWTH = growth_increment ] )

< optionspec > ::=

<state_option>
| < cursor_option >
| < auto_option >
| < sql_option >
| < recovery_option >

< state_option > ::=
{ SINGLE_USER | RESTRICTED_USER | MULTI_USER }
| { OFFLINE | ONLINE }
| { READ_ONLY | READ_WRITE }

< termination > ::=
ROLLBACK AFTER integer [ SECONDS ]
| ROLLBACK IMMEDIATE
| NO_WAIT

< cursor_option > ::=
CURSOR_CLOSE_ON_COMMIT { ON | OFF }
| CURSOR_DEFAULT { LOCAL | GLOBAL }

< auto_option > ::=
AUTO_CLOSE { ON | OFF }
| AUTO_CREATE_STATISTICS { ON | OFF }
| AUTO_SHRINK { ON | OFF }
| AUTO_UPDATE_STATISTICS { ON | OFF }

< sql_option > ::=
ANSI_NULL_DEFAULT { ON | OFF }
| ANSI_NULLS { ON | OFF }
| ANSI_PADDING { ON | OFF }
| ANSI_WARNINGS { ON | OFF }
| ARITHABORT { ON | OFF }
| CONCAT_NULL_YIELDS_NULL { ON | OFF }
| NUMERIC_ROUNDABORT { ON | OFF }
| QUOTED_IDENTIFIER { ON | OFF }
| RECURSIVE_TRIGGERS { ON | OFF }

< recovery_option > ::=
RECOVERY { FULL | BULK_LOGGED | SIMPLE }
| TORN_PAGE_DETECTION { ON | OFF }

參數
database

是要更改的資料庫的名稱。

ADD FILE

指定要添加文件。

TO FILEGROUP

指定要將指定文件添加到的文件組。

filegroup_name

是要添加指定文件的文件組名稱。

ADD LOG FILE

指定要將日誌文件添加到指定的資料庫。

REMOVE FILE

從資料庫系統表中刪除文件描述並刪除物理文件。只有在文件為空時才能刪除。

ADD FILEGROUP

指定要添加文件組。

filegroup_name

是要添加或除去的文件組名稱。

REMOVE FILEGROUP

從資料庫中刪除文件組並刪除該文件組中的所有文件。只有在文件組為空時才能刪除。

MODIFY FILE

指定要更改給定的文件,更改選項包括 FILENAME、SIZE、FILEGROWTH 和 MAXSIZE。一次只能更改這些屬性中的一種。必須在 <filespec> 中指定 NAME,以標識要更改的文件。如果指定了 SIZE,那麼新大小必須比文件當前大小要大。只能為 tempdb 資料庫中的文件指定 FILENAME,而且新名稱只有在 Microsoft SQL Server 重新啟動後才能生效。

若要更改數據文件或日誌文件的邏輯名稱,應在 NAME 選項中指定要改名的邏輯文件名稱,並在 NEWNAME 選項中指定文件的新邏輯名稱。

示例如下:

MODIFY FILE (NAME = logical_file_name, NEWNAME = new_logical_name...)。

可同時運行幾個 ALTER DATABASE database MODIFY FILE 語句以實現多個修改文件操作時性能最優。

MODIFY NAME = new_dbname

重命名資料庫。

MODIFY FILEGROUP filegroup_name { filegroup_property | NAME = new_filegroup_name }

指定要修改的文件組和所需的改動。

如果指定 filegroup_name 和 NAME = new_filegroup_name,則將此文件組的名稱改為 new_filegroup_name。

如果指定 filegroup_name 和 filegroup_property,則表示給定文件組屬性將應用於此文件組。filegroup_property 的值有:

READONLY
指定文件組為只讀。不允許更新其中的對象。主文件組不能設置為只讀。只有具有排它資料庫訪問許可權的用戶才能將文件組標記為只讀。

READWRITE
逆轉 READONLY 屬性。允許更新文件組中的對象。只有具有排它資料庫訪問許可權的用戶才能將文件組標記為讀/寫。

DEFAULT
將文件組指定為默認資料庫文件組。只能有一個資料庫文件組是默認的。CREATE DATABASE 語句將主文件組設置為初始的默認文件組。如果在 CREATE TABLE、ALTER TABLE 或者 CREATE INDEX 語句中沒有指定文件組,則新表及索引將在默認文件組—中創建。
WITH <termination>

指定當資料庫從一種狀態轉換到另一種狀態時,何時回滾未完成的事務。只能指定一條 termination 子句,而且該子句應跟在 SET 子句後面。

ROLLBACK AFTER integer [SECONDS] | ROLLBACK IMMEDIATE
設定是在指定秒數之後回滾還是立即回滾。如果省略了 termination 子句,那麼將允許事務自主提交或回滾。

NO_WAIT
指定如果請求的資料庫語句或選項更改只有等待事務自主提交或回滾才能立即完成,該請求將失敗。
COLLATE < collation_name >

指定資料庫的排序規則。排序規則名稱既可以是 Windows 排序規則名稱,也可以是 SQL 排序規則名稱。如果沒有指定排序規則,則將 SQL Server 實例的默認排序規則指派為資料庫的排序規則。

有關 Windows 和 SQL 排序規則名稱的更多信息,請參見 COLLATE。

<filespec>

控制文件屬性。

NAME
指定文件的邏輯名稱。

logical_file_name
是在 Microsoft SQL Server 中引用文件時所用的名稱。該名稱在資料庫中必須唯一,並應遵循標識符規則。該名稱可以是字元或 Unicode 常量、常規標識符或定界標識符。有關更多信息,請參見使用標識符。

FILENAME
指定操作系統中的文件名。當和 MODIFY FILE一起使用時,只能對 tempdb 資料庫中的文件指定 FILENAME。新 tempdb 文件名只有在 SQL Server 停止並重新啟動後才能生效。

'os_file_name'
由操作系統使用的文件的路徑和文件名。該文件必須駐留在安裝 SQL Server 的伺服器上。數據文件和日誌文件不應置於壓縮的文件系統中。
如果文件位於原始分區上,那麼 os_file_name 必須僅指定該原始分區的驅動器字母。每個原始分區上只能存放一個文件。原始分區上的文件不會自動增長;因此,os_file_name 指定原始分區時,不需要指定 MAXSIZE 和 FILEGROWTH 參數。

SIZE
指定文件大小。

size
是文件的大小。後綴 KB、MB、GB 和 TB 可用於指定千位元組、兆位元組、千兆位元組或兆兆位元組。默認值為 MB。指定一個整數,不要包含小數位。size 的最小值是 512 KB,如果 size 未指定,默認值是 1 MB。當隨 ADD FILE 一起指定時,size 是文件的初始大小。當隨 MODIFY FILE 一起指定時,size 是文件的新大小,而且必須大於文件的當前大小。

MAXSIZE
指定最大的文件大小。

max_size
是最大的文件大小。後綴 KB、MB、GB 和 TB 可用於指定千位元組、兆位元組、千兆位元組或兆兆位元組。默認值為 MB。指定一個整數,不要包含小數位。如果沒有指定 max_size,那麼文件大小將一直增長,直至磁碟填滿為止。當磁碟即將填滿時,Microsoft Windows NT® 應用程序日誌將向管理員發出警告。

UNLIMITED
指定文件大小可一直增加直至磁碟已滿。

FILEGROWTH
指定文件增長的增量。

growth_increment
每次需要新的空間時為文件添加的空間大小。值為 0 表示不增長。該值可按 MB、KB 或 % 的形式指定。指定一個整數,不要包含小數位。如果指定了 %,那麼文件增量為文件發生增長時文件大小的指定百分比。如果未在數量後面指定 MB、KB 或 %,則默認值為 MB。如果 FILEGROWTH 未指定,默認值為 10%,且最小值為 64 KB。指定的大小舍入為最接近的 64 KB 的倍數。
<state_option>

控制用戶對資料庫的訪問,資料庫是否處於聯機狀態,以及是否允許寫操作。

SINGLE_USER | RESTRICTED_USER | MULTI_USER
控制哪些用戶可以訪問資料庫。如果指定為 SINGLE_USER,那麼同一時間只能有一個用戶訪問資料庫。如果指定為 RESTRICTED_USER,那麼只有 db_owner、dbcreator 或 sysadmin 角色的成員可以使用資料庫。MULTI_USER 使資料庫返回到正常操作狀態。

OFFLINE | ONLINE
控制資料庫是聯機還是離線。

READ_ONLY | READ_WRITE
指定資料庫是否處於只讀模式。在只讀模式下,用戶可以從資料庫中讀取數據,但不能修改數據。當指定 READ_ONLY 時,資料庫不能處於使用狀態。master 資料庫是一個例外,當該資料庫設置為 READ_ONLY 時,只有系統管理員才能使用該資料庫。READ_WRITE 使資料庫返回到讀寫操作狀態。
<cursor_option>

控制游標選項。

CURSOR_CLOSE_ON_COMMIT ON | OFF
如果指定為 ON,在事務提交或回滾時所有打開的游標都將關閉。如果指定為 OFF,那麼在事務提交時打開的游標仍保持打開;而回滾事務時關閉所有除定義為 INSENSITIVE 或 STATIC 之外的游標。

CURSOR_DEFAULTLOCAL | GLOBAL
控制游標作用域默認為 LOCAL 還是 GLOBAL。
<auto_option>

控制自動選項。

AUTO_CLOSE ON | OFF
如果指定為 ON,那麼最後一個用戶退出後,資料庫將干凈地關閉,其佔用的資源將釋放。如果指定為 OFF,那麼最後一個用戶退出後資料庫仍保持打開。

AUTO_CREATE_STATISTICS ON | OFF
如果指定為 ON,那麼所有優化查詢需要但缺少的統計信息都會在查詢優化時自動生成。

AUTO_SHRINK ON | OFF
如果指定為 ON,資料庫文件將定期自動收縮。

AUTO_UPDATE_STATISTICS ON | OFF
如果指定為 ON,所有查詢優化所需的過時的統計信息在都將在優化時自動重建。如果指定為 OFF,統計信息必須手工更新。
<sql_option>

控制 ANSI 遵從性選項。

ANSI_NULL_DEFAULT ON | OFF
如果指定為 ON,CREATE TABLE 在確定列是否允許空值時遵從 SQL-92 規則。

ANSI_NULLS ON | OFF
如果指定為 ON,所有與空值的比較運算結果為 UNKNOWN。如果指定為 OFF,非 UNICODE 值與空值的比較運算在兩者均為 NULL 時結果為 TRUE。

ANSI_PADDING ON | OFF
如果指定為 ON,在比較或插入前,字元串將填充為同一長度。如果指定為 OFF,字元串將不填充。

ANSI_WARNINGS ON | OFF
如果指定為 ON,當出現諸如被零除的情況時將產生錯誤或警告。

ARITHABORT ON | OFF
如果指定為 ON,在執行查詢時如果發生溢出或被零除,該查詢將終止。

CONCAT_NULL_YIELDS_NULL ON | OFF
如果指定為 ON,當串聯操作的兩個操作數中任意一個為 NULL 時,結果也為 NULL。如果指定為 OFF,空值將按空字元串對待。默認設置為 OFF。

QUOTED_IDENTIFIER ON | OFF
如果指定為 ON,雙引號將可用於包含定界標識符。

NUMERIC_ROUNDABORT ON | OFF
如果指定為 ON,當表達式中出現精度損失時將產生錯誤。

RECURSIVE_TRIGGERS ON | OFF
如果指定為 ON,將允許遞歸激發觸發器。RECURSIVE_TRIGGERS OFF(默認值)只禁止直接遞歸。若要也禁用間接遞歸,請使用 sp_configure 將 nested triggers 伺服器選項設置為 0。
<recovery_options>

控制資料庫恢復選項。

RECOVERY FULL | BULK_LOGGED | SIMPLE
如果指定為 FULL,系統將對介質錯誤提供完全保護。如果數據文件損壞,介質恢復可以還原所有已提交的事務。
如果指定為 BULK_LOGGED,將在介質錯誤保護程度與某些大規模或大容量操作的最優性能及日誌存儲空間最少佔用量之間進行權衡。這些操作包括 SELECT INTO、大容量裝載操作(bcp 和 BULK INSERT)、CREATE INDEX 以及文本和圖象操作(WRITETEXT 和 UPDATETEXT)。

在大容量日誌記錄恢復模型下,對整個類只做最少的日誌記錄,並且無法逐個操作地控制日誌記錄行為。

如果指定為 SIMPLE,系統將提供佔用日誌空間最小的備份策略。伺服器故障恢復不再需要的日誌空間可被自動重用。

重要 簡單恢復模型比其它兩種模型更容易管理,但數據文件損壞時造成數據丟失的可能性更大。最近的資料庫備份或差異資料庫備份之後的更改都將丟失,必須手工重新輸入。

默認恢復模型由 model 資料庫的恢復模型確定。若要更改新資料庫的默認值,請用 ALTER DATABASE 設置 model 資料庫的恢復選項。

TORN_PAGE_DETECTION ON | OFF
如果指定為 ON,將可以檢測到未完成的頁。默認設置為 ON。
注釋
若要刪除資料庫,請使用 DROP DATABASE 語句。若要更改資料庫名稱,請使用 sp_renamedb。有關減小資料庫大小的更多信息,請參見 DBCC SHRINKDATABASE。

在對資料庫應用不同的或新的排序規則時,應確保符合以下條件:

您是當前資料庫的唯一用戶。

沒有依賴資料庫排序規則的架構綁定對象。
如果資料庫中存在以下依賴資料庫排序規則的對象,則 ALTER DATABASE database COLLATE 語句將失敗。SQL Server 將針對每一個阻塞 ALTER 操作的對象返回一個錯誤信息:

通過 SCHEMABINDING 創建的用戶定義函數和視圖。

計算列。

CHECK 約束。

表值函數返回包含字元列的表,這些列繼承了默認的資料庫排序規則。
改變資料庫的排序規則不會在任何數據對象的系統名稱中產生重復名稱。
如果改變排序規則後出現重復的名稱,則下列命名空間可能導致改變資料庫排序規則的操作失敗:

對象名(如過程、表、觸發器或視圖)。

架構名(如組、角色或用戶)。

標量類型名(如系統和用戶定義類型)。

全文目錄名稱。

對象內的列名或參數名。

表范圍內的索引名。
由新的排序規則產生的重復名稱將導致改變操作失敗,SQL Server 將返回錯誤信息,指出重復名稱所在的命名空間。

當 BACKUP 語句正在執行時,不能添加或刪除文件。

若要在 size 參數中指定兆位元組的分數,應通過乘以數字 1024 將該值轉換為千位元組。例如,應指定 1536 KB 而不是 1.5MB(1.5 x 1024 = 1536)。

許可權
ALTER DATABASE 許可權默認授予 sysadmin 和 dbcreator 固定伺服器角色成員以及 db_owner 固定資料庫角色成員。這些許可權是不可傳遞的。

示例
A. 向資料庫中添加文件
下例創建資料庫,並更改該資料庫以添加一個 5 MB 大小的新數據文件。

USE master
GO
CREATE DATABASE Test1 ON
(
NAME = Test1dat1,
FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\t1dat1.ndf',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB
)
GO
ALTER DATABASE Test1
ADD FILE
(
NAME = Test1dat2,
FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\t1dat2.ndf',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB
)
GO

B. 向資料庫中添加由兩個文件組成的文件組
下例在示例 A 中所創建的 Test1 資料庫中創建一個文件組,並將兩個 5 MB 的文件添加到該文件組。然後下例將 Test1FG1 設置為默認文件組。

USE master
GO
ALTER DATABASE Test1
ADD FILEGROUP Test1FG1
GO

ALTER DATABASE Test1
ADD FILE
( NAME = test1dat3,
FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\t1dat3.ndf',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB),
( NAME = test1dat4,
FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\t1dat4.ndf',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB)
TO FILEGROUP Test1FG1

ALTER DATABASE Test1
MODIFY FILEGROUP Test1FG1 DEFAULT
GO

C. 向資料庫中添加兩個日誌文件
下例向資料庫中添加兩個 5 MB 大小的日誌文件。

USE master
GO
ALTER DATABASE Test1
ADD LOG FILE
( NAME = test1log2,
FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\test2log.ldf',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB),
( NAME = test1log3,
FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\test3log.ldf',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB)
GO

D. 從資料庫中刪除文件
下例將示例 B 中添加到資料庫 Test1 中的一個文件刪除。

USE master
GO
ALTER DATABASE Test1
REMOVE FILE test1dat4
GO

E. 更改文件
下例將示例 B 中添加到資料庫 Test1 中的一個文件增加大小。

USE master
GO
ALTER DATABASE Test1
MODIFY FILE
(NAME = test1dat3,
SIZE = 20MB)
GO

F. 將主文件組設置為默認文件組
假定原來另一個文件組設置為默認文件組,下例將主文件組設置為默認文件組。

USE master
GO
ALTER DATABASE MyDatabase
MODIFY FILEGROUP [PRIMARY] DEFAULT
GO

請參見

CREATE DATABASE

DROP DATABASE

sp_helpdb

sp_helpfile

sp_helpfilegroup

sp_renamedb

sp_spaceused

使用恢復模型

&;1988-2000 Microsoft Corporation。保留所有權利。

C. 資料庫系統中的幾種架構及處理方式

主從式結構
是指一個主機帶多個終端的多用戶結構。在這種結構中,資料庫系統,包括:應用程序、DBMS、數據,都集中存放在主機上.所有處理任務都由主機來完成,各個用戶通過主機的終端並發地存取資料庫,共享數據資源.
主從式結構的優點是簡單,數據易於管理與維護。缺點是當終端用戶數目增加到一定程度後,主機的任務會過分繁重,形成瓶頸,從而使系統性能大幅度下降。另外當主機出現故障時,整個系統都不能使用,因此系統的可靠性不高。

集中式架構
是一種遠程桌面控制技術,使用此技術,遠程用戶能夠使用任何類型的終端系統,通過任何類型的網路連接,使用遠程伺服器上的應用程序。用戶甚至能夠使用同一個終端系統訪問甚至遠程多個不同平台、不同網路協議伺服器上的多個應用,這些應用被集成在一個訪問界面中,操作簡便。

C/S架構
(Client/Server或客戶/伺服器模式):Client和Server常常分別處在相距很遠的兩台計算機上,Client程序的任務是將用戶的要求提交給Server程序,再將Server程序返回的結果以特定的形式顯示給用戶;Server程序的任務是接收客戶程序提出的服務請求,進行相應的處理,再將結果返回給客戶程序。
C/S (Client/Server)結構,即大家熟知的客戶機和伺服器結構。它是軟體系統體系結構,通過它可以充分利用兩端硬體環境的優勢,將任務合理分配到Client端和Server端來實現,降低了系統的通訊開銷。目前大多數應用軟體系統都是Client/Server形式的兩層結構,由於現在的軟體應用系統正在向分布式的Web應用發展,Web和Client/Server 應用都可以進行同樣的業務處理,應用不同的模塊共享邏輯組件;因此,內部的和外部的用戶都可以訪問新的和現有的應用系統,通過現有應用系統中的邏輯可以擴展出新的應用系統。這也就是目前應用系統的發展方向。
傳統的C/S體系結構雖然採用的是開放模式,但這只是系統開發一級的開放性,在特定的應用中無論是Client端還是Server端都還需要特定的軟體支持。由於沒能提供用戶真正期望的開放環境,C/S結構的軟體需要針對不同的操作系統系統開發不同版本的軟體, 加之產品的更新換代十分快,已經很難適應百台電腦以上區域網用戶同時使用。而且代價高, 效率低。

C/S結構的優點
C/S結構的優點是能充分發揮客戶端PC的處理能力,很多工作可以在客戶端處理後再提交給伺服器。對應的優點就是客戶端響應速度快。缺點主要有以下幾個:
只適用於區域網。而隨著互聯網的飛速發展,移動辦公和分布式辦公越來越普及,這需要我們的系統具有擴展性。這種方式遠程訪問需要專門的技術,同時要對系統進行專門的設計來處理分布式的數據。
客戶端需要安裝專用的客戶端軟體。首先涉及到安裝的工作量,其次任何一台電腦出問題,如病毒、硬體損壞,都需要進行安裝或維護。特別是有很多分部或專賣店的情況,不是工作量的問題,而是路程的問題。還有,系統軟體升級時,每一台客戶機需要重新安裝,其維護和升級成本非常高。
對客戶端的操作系統一般也會有限制。可能適應於Win98, 但不能用於win2000或Windows XP。或者不適用於微軟新的操作系統等等,更不用說Linux、Unix等。

D. 設備 'I:\數據備份\hiktb.bak' 上的媒體簇的結構不正確。SQL Server 無法處理此媒體簇。RESTORE HEADERONL

SQL 2008R2 SQL2008 這是有2個版本的 或者說標准版和企業版的區別具體的也不太清楚。我也遇到同樣的問題 正在升級SQL2008版本中

或者你的備份數據損壞了,建議再次備份 在其他電腦上試下。

如果是使用restore 還原的話,會再現以下錯誤:
設備'XXX.bak' 上的媒體簇的結構不正確。SQLServer無法處理此媒體簇。

如果是使用附加功能的話,會再現以下錯誤:

執行 Transact-SQL 語句或批處理時發生了異常。 (Microsoft.SqlServer.ConnectionInfo)
------------------------------
資料庫 'DATABase' 的版本為 706,無法打開。此伺服器支持 655 版及更低版本。不支持降級路徑。
無法打開新資料庫 'DATABase'。CREATE DATABASE 中止。 (Microsoft SQL Server,錯誤: 948)

發生此情況有種可能是 把高版本的備份放到低版本的資料庫上進行還原所致.目前還沒有看到有相關直接還原的辦法,都是使用數據導入\導出功能來做的.

E. 磁碟的文件系統結構已損壞且無法使用

是哪個磁碟?可以對出現這個提示的磁碟做個磁碟修復。
磁碟修復:打開計算機,在需要修復的U盤上單擊右鍵,選擇「屬性」。在彈出的屬性窗口中點擊「工具」選項卡,然後在查錯裡面點擊「開始檢查」。在彈出的磁碟修復窗口勾選「自動修復文件系統錯誤」,然後點擊「開始」。
如果磁碟修復後,磁碟里出現了FOUND.000文件夾,用CHK文件恢復專家掃描恢復一下就可以了,希望能幫到你。
可以快速准確地識別出CHK文件的原文件類型並進行恢復,如mp3、mp4、jpg、bmp、gif、png、avi、rm、mov、mpg、wma、wmv、doc、docx、xls、xlsx、ppt、pptx、zip、rar、exe、dll、sql、mdb、psd等200多種常見文件類型。

F. 如何復制mysql資料庫到另一台電腦上

這種架構一般用在以下三類場景
1. 備份多台 Server 的數據到一台如果按照數據切分方向來講,那就是垂直切分。比如圖 2,業務 A、B、C、D 是之前拆分好的業務,現在需要把這些拆分好的業務匯總起來備份,那這種需求也很適用於多源復制架構。實現方法我大概描述下:業務 A、B、C、D 分別位於 4 台 Server,每台 Server 分別有一個資料庫來隔離前端的業務數據,那這樣,在從庫就能把四台業務的數據全部匯總起來,而不需要做額外的操作。那沒有多源復制之前,要實現這類需求,只能在匯總機器上搭建多個 MySQL 實例,那這樣勢必會涉及到跨庫關聯的問題,不但性能急劇下降,管理多個實例也沒有單台來的容易。

G. 資料庫還原問題,媒體簇的結構不正確。無法還原資料庫

那個備份可能是壓縮文件 將後綴名 改成 .rar 解壓該文件。然後還原 應該就行了

H. 資料庫主從不一致,怎麼解

由於各種原因,mysql主從架構經常會出現數據不一致的情況出現,大致歸結為如下幾類
1:備庫寫數據
2:執行non-deterministic query
3:回滾摻雜事務表和非事務表的事務
4:binlog或者relay log數據損壞
數據不同步給應用帶來的危害是致命的,當出現主從數據不一致的情況,常見的應對方法是先把從庫下線,然後找個半夜三更的時間把應用停掉,重新執行同步,如果資料庫的體積十分龐大,那工作量可想而知,會讓人崩潰。本文介紹使用percona-toolkit工具對mysql主從資料庫的同步狀態進行檢查和重新同步。
一:安裝percona-toolkit

二:修改mysql 的binlog格式binlog_format參數為row格式
mysql binlog日誌有三種格式,分別為Statement, Mixed,以及ROW!
1.Statement:
每一條會修改數據的sql都會記錄在binlog中。
優點:不需要記錄每一行的變化,減少了binlog日誌量,節約了IO,提高性能。(相比row能節約多少性能與日誌量,這個取決於應用的SQL情況,正常同一條記錄修改或者插入row格式所產生的日誌量還小於Statement產生的日誌量,但是考慮到如果帶條件的update操作,以及整表刪除,alter表等操作,ROW格式會產生大量日誌,因此在考慮是否使用ROW格式日誌時應該跟據應用的實際情況,其所產生的日誌量會增加多少,以及帶來的IO性能問題。)
缺點:由於記錄的只是執行語句,為了這些語句能在slave上正確運行,因此還必須記錄每條語句在執行的時候的一些相關信息,以保證所有語句能在slave得到和在master端執行時候相同 的結果。另外mysql 的復制,像一些特定函數功能,slave可與master上要保持一致會有很多相關問題(如sleep()函數, last_insert_id(),以及user-defined functions(udf)會出現問題).
2.Row
不記錄sql語句上下文相關信息,僅保存哪條記錄被修改。
優點: binlog中可以不記錄執行的sql語句的上下文相關的信息,僅需要記錄那一條記錄被修改成什麼了。所以rowlevel的日誌內容會非常清楚的記錄下每一行數據修改的細節。而且不會出現某些特定情況下的存儲過程,或function,以及trigger的調用和觸發無法被正確復制的問題
缺點:所有的執行的語句當記錄到日誌中的時候,都將以每行記錄的修改來記錄,這樣可能會產生大量的日誌內容,比如一條update語句,修改多條記錄,則binlog中每一條修改都會有記錄,這樣造成binlog日誌量會很大,特別是當執行alter table之類的語句的時候,由於表結構修改,每條記錄都發生改變,那麼該表每一條記錄都會記錄到日誌中。
3.Mixed
是以上兩種level的混合使用,一般的語句修改使用statment格式保存binlog,如一些函數,statement無法完成主從復制的操作,則採用row格式保存binlog,MySQL會根據執行的每一條具體的sql語句來區分對待記錄的日誌形式,也就是在Statement和Row之間選擇一種.新版本的MySQL中隊row level模式也被做了優化,並不是所有的修改都會以row level來記錄,像遇到表結構變更的時候就會以statement模式來記錄。至於update或者delete等修改數據的語句,還是會記錄所有行的變更。

I. 為什麼postgrelsql的性能沒有mysql好

一、 PostgreSQL 的穩定性極強, Innodb 等引擎在崩潰、斷電之類的災難場景下抗打擊能力有了長足進步,然而很多 MySQL 用戶都遇到過Server級的資料庫丟失的場景——mysql系統庫是MyISAM的,相比之下,PG資料庫這方面要好一些。
二、任何系統都有它的性能極限,在高並發讀寫,負載逼近極限下,PG的性能指標仍可以維持雙曲線甚至對數曲線,到頂峰之後不再下降,而 MySQL 明顯出現一個波峰後下滑(5.5版本之後,在企業級版本中有個插件可以改善很多,不過需要付費)。
三、PG 多年來在 GIS 領域處於優勢地位,因為它有豐富的幾何類型,實際上不止幾何類型,PG有大量字典、數組、bitmap 等數據類型,相比之下mysql就差很多,instagram就是因為PG的空間資料庫擴展POSTGIS遠遠強於MYSQL的my spatial而採用PGSQL的。

四、PG 的「無鎖定」特性非常突出,甚至包括 vacuum 這樣的整理數據空間的操作,這個和PGSQL的MVCC實現有關系。
五、PG 的可以使用函數和條件索引,這使得PG資料庫的調優非常靈活,mysql就沒有這個功能,條件索引在web應用中很重要。
六、PG有極其強悍的 SQL 編程能力(9.x 圖靈完備,支持遞歸!),有非常豐富的統計函數和統計語法支持,比如分析函數(ORACLE的叫法,PG里叫window函數),還可以用多種語言來寫存儲過程,對於R的支持也很好。這一點上MYSQL就差的很遠,很多分析功能都不支持,騰訊內部數據存儲主要是MYSQL,但是數據分析主要是HADOOP+PGSQL。
七、PG 的有多種集群架構可以選擇,plproxy 可以支持語句級的鏡像或分片,slony 可以進行欄位級的同步設置,standby 可以構建WAL文件級或流式的讀寫分離集群,同步頻率和集群策略調整方便,操作非常簡單。
八、一般關系型資料庫的字元串有限定長度8k左右,無限長 TEXT 類型的功能受限,只能作為外部大數據訪問。而 PG 的 TEXT 類型可以直接訪問,SQL語法內置正則表達式,可以索引,還可以全文檢索,或使用xml xpath。用PG的話,文檔資料庫都可以省了。
九,對於WEB應用來說,復制的特性很重要,mysql到現在也是非同步復制,pgsql可以做到同步,非同步,半同步復制。還有mysql的同步是基於binlog復制,類似oracle golden gate,是基於stream的復制,做到同步很困難,這種方式更加適合異地復制,pgsql的復制基於wal,可以做到同步復制。同時,pgsql還提供stream復制。
十,pgsql對於numa架構的支持比mysql強一些,比MYSQL對於讀的性能更好一些,pgsql提交可以完全非同步,而mysql的內存表不夠實用(因為表鎖的原因)

最後說一下我感覺 PG 不如 MySQL 的地方。
第一,MySQL有一些實用的運維支持,如 slow-query.log ,這個pg肯定可以定製出來,但是如果可以配置使用就更好了。
第二是mysql的innodb引擎,可以充分優化利用系統所有內存,超大內存下PG對內存使用的不那麼充分,
第三點,MySQL的復制可以用多級從庫,但是在9.2之前,PGSQL不能用從庫帶從庫。
第四點,從測試結果上看,mysql 5.5的性能提升很大,單機性能強於pgsql,5.6應該會強更多.
第五點,對於web應用來說,mysql 5.6 的內置MC API功能很好用,PGSQL差一些。

另外一些:
pgsql和mysql都是背後有商業公司,而且都不是一個公司。大部分開發者,都是拿工資的。
說mysql的執行速度比pgsql快很多是不對的,速度接近,而且很多時候取決於你的配置。
對於存儲過程,函數,視圖之類的功能,現在兩個資料庫都可以支持了。
另外多線程架構和多進程架構之間沒有絕對的好壞,oracle在unix上是多進程架構,在windows上是多線程架構。
很多pg應用也是24/7的應用,比如skype. 最近幾個版本VACUUM基本不影響PGSQL 運行,8.0之後的PGSQL不需要cygwin就可以在windows上運行。
至於說對於事務的支持,mysql和pgsql都沒有問題。