Tải bản đầy đủ (.pdf) (20 trang)

Quản trị hệ cơ sở dữ liệu _ Kiểm tra giữa kì thực hành

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.14 MB, 20 trang )

Các công cụ quản trị hệ cơ sở dữ liệu (phần 1/2)
BÀI 1: Sử dụng Object Explorer để tạo script, lưu script vào file “TaoCSDL_TestDB.sql”, nếu
chạy file script này thì sẽ tạo mới CSDL tên TestDB
USE master GO
CREATE DATABASE TestDB ON
(
Name = 'TestDB', --Tên logic
Filename = 'D:\TestDB.mdf', --vtri lưu file
Size = 10, --kích thước khởi tạo
Maxsize = 50, --kích thước tối đa
Filegrowth = 10 –-khi dlieu quá nhiều, kích thước size tự tăng 10 của size
)
LOG ON
(
Name = 'TestDB_Log', --tên logic tập tin log
Filename = 'D:\TestDB_log.ldf', --vtri lưu file log
Size = 5,
Maxsize = 25MB,
Filegrowth = 5MB
)

BÀI 2: Sử dụng Object Explorer để đổi 1 SQL Instance từ Mixed mode qua Windows mode và
ngược lại. Xem và đổi qua lại 2 mode ở mục Security của cửa sổ Property của Instance, các yêu
cầu báo cáo:
a) Liệt kê các bước thực hiện đổi 1 SQL Instance từ Mixed mode qua Windows mode, sau khi đổi
cần Disconnect, Stop SQL Service, Start lại SQL Service, Connect lại để xem kết quả đã thay
đổi (login sa không dùng được nữa, phải connect bằng Windows mode). Để Stop/Start SQL
service ta có thể dùng tool SQL Server Configuration Manager.

− Chuột phải phần SQL D45 – Properties – Security


− Tìm SQL Server Configuration Manager, chuột phải và Stop SQL Service, Start lại
SQL Service


//dùng cái trên này cần Disable ‘sa’, chuyển dùng cái dưới

− Thử connect lại với ‘sa’

b) Liệt kê các bước thực hiện đổi 1 SQL Instance từ Windows mode qua Mixed mode, sau khi đổi
cần Disconnect, Stop & Start lại SQL Service, Connect lại để xem kết quả đã thay đổi (login sa
phải dùng lại được). Để login sa dùng lại được, ta phải vào property của login này để chỉnh
enable (lúc mới chuyển qua mixed mode thì login sa vẫn còn bị disable).

− Chuột phải phần D45 – Properties - Security


− SQL Server Configuration Manager: chuột phải và Stop SQL Service, Start lại SQL
Service

− Kết nối sa: thành công

Bài 3: Sử dụng Object Explorer và Query Editor để tạo script gán quyền cho login. Xem và gán
quyền trên server cho các login ở mục Permision của cửa sổ Property của Instance.

− Tạo mới tài khoản login: security – new login

a) Tạo script gán quyền (GRANT) “thay đổi các login” cho 1 login
use [master] GO
GRANT ALTER ANY LOGIN TO [sqlLogin1] GO


b) Tạo script gán quyền là thành viên của 1 server role “dbcreater” cho 1 login
EXEC master..sp_addsrvrolemember
@loginame = N'sqlLogin2', @rolename = N'dbcreator'
GO

Bài 4: Sử dụng Object Explorer và Query Editor để tạo script gán quyền cho database user. Xem
và gán quyền trên dữ liệu cho database user ở mục Securables của cửa sổ Property của 1
database user.

− Tạo database user của CSDL AdventureWorks: AdventureWorks – Security – Users –
New user
a) Tạo script gán quyền (GRANT) Select cho 1 database user
use [AdventureWorks] GO
GRANT SELECT ON [HumanResources].[Department] TO [DBUSer1]
GO

− Sử dụng quyền SELECT:


b) Tạo script gán quyền là thành viên của 1 database role
“db_datawriter” cho 1 database user
USE [AdventureWorks]
GO
EXEC sp_addrolemember N'db_datawriter', N'DBUSer2'
GO

− Kiểm tra: Object Explorer xem được thông tin các bảng
Bài 5: Sử dụng Registered Servers (chọn từ menu View của Managent studio, hay phím tắt
Ctr+Alt+G) để đăng ký tất cả các SQL Instance có thể đăng ký được. Sau đó lập 1 server group và
move các instance vào group. Có thể thực hiện trên máy host / máy ảo.

a) Chụp từng bước tạo mới 1 server group tên “Group1”

− Chuột phải Local Server Groups – New Server Group
b) Chụp từng bước đăng ký 1 instance vào cửa sổ Registered Servers

− Chuột phải Local Server Groups – New Server Registration
c) Chụp từng bước move instance vào group1
− Chuột phải nhóm 1 – Tasks – Move to …

Kết quả:
d) Chụp từng bước move instance đó ra khỏi Group1
− Chuột phải nhóm 1 – Tasks – Move to …

Kết quả:


Các công cụ quản trị hệ cơ sở dữ liệu (phần 2/2)
Bài 1: Sử dụng chức năng tạo REPORT của cửa sổ SQL Server để xem thông tin các file
lưu trữ CSDL AdventureWorks. Sau đó xuất report ra file Excel và PDF.

, kết quả đc file pdf
Bài 2: Sử dụng chức năng tạo Script của TEMPLATE EXPLORER. Các yêu cầu báo cáo:
a) Tạo script mà khi chạy script sẽ tạo mới CSDL tên ABC.
USE master GO
CREATE DATABASE db1 GO

b) Tạo script mà khi chạy script sẽ xóa CSDL tên ABC vừa tạo ở trên.
USE master GO
DROP DATABASE db1 GO


Bài 3: Sử dụng chức năng của công cụ SQL SERVER CONFIGURATION MANAGER.
a) Chỉnh giao thức của service MSSQLSERVER (đây là tên service của default instance): Shared
memory và TIP/IP

b) Chỉnh giao thức của client là Shared memory (ưu tiên 1) và TIP/IP (ưu tiên 2)


c) Tạo 1 Alias tên Server1, ứng với server MSSQLSERVER, giao thức TCP/IP, port mặc định
(không nhập)

Bài 4: Sử dụng công cụ giao diện console SQLCMD. Trong Windows vào START - Run gõ
CMD - Enter vào mode console.
a) Khởi chạy cơng cụ SQLCMD và thốt ra (sqlcmd để chạy cơng cụ, exit để thoát ra)

b) Xem hướng dẫn các đối số của câu lệnh (sqlcmd /?)

c) Đăng nhập vào default server dạng Windows mode (sqlcmd –S Server Name)

d) Đăng nhập vào default server dạng SQL Server mode (login name: sa, pasword: sa) (sqlcmd –
S WWW –U sa hay sqlcmd –U sa, sau đó nhập password sa)

e) Truy vấn data của bảng Contact thuộc schema Person, lấy 10 hàng 4 cột gồm ContactID,
FirstName, LastName, EmailAddress


Kiến trúc lưu trữ
Bài 1: Tạo 1 CSDL mới tên MSSV_1 và thực hiện các yêu cầu sau
USE master
GO
CREATE DATABASE MSSV_1954052080_1 ON

(
Name = 'MSSV_1954052080_1',
Filename = 'D:\TestDB.mdf',
Size = 2MB,
Maxsize = 200MB,
Filegrowth = 10%
)
LOG ON
(
Name = 'MSSV_1954052080_1_Log',
Filename = 'D:\MSSV_1954052080_1.ldf',
Size = 2MB,
Maxsize = 200MB,
Filegrowth = 10%
)
GO


a) Chỉnh Recovery model: Full
USE master
ALTER DATABASE MSSV_1954052080_1 SET RECOVERY FULL
SELECT name "Database Name", recovery_model_desc
From sys.databases

b) Thêm Filegroup tên F1 có thuộc tính read only. Sau khi thêm file vào file group, cài thuộc tính
ALTER DATABASE MSSV_1954052080_1 ADD FILEGROUP F1 ---FileGroup F1
ALTER DATABASE MSSV_1954052080_1 MODIFY FILEGROUP F1 READONLY --thuộc tính Read only

c) Thêm Filegroup tên F2 có thuộc tính default. Sau khi thêm file vào file group thì cài thuộc tính
ALTER DATABASE MSSV_1954052080_1 ADD FILEGROUP F2 ---FileGroup F2

ALTER DATABASE MSSV_1954052080_1 MODIFY FILEGROUP F1 READONLY --thuộc tính Default

− Kiểm tra 2 câu b & c trong Database Properties

d) Thêm data file tên NDF1 thuộc filegroup F1
ALTER DATABASE MSSV_1954052080_1
ADD FILE (NAME ='NDF1 ', FILENAME = 'D:\MSSV_1954052080_1_NDF1.ndf' )
TO FILEGROUP F1

e) Thêm data file tên NDF2 thuộc filegroup F2
ALTER DATABASE MSSV_1954052080_1
ADD FILE (NAME ='NDF2 ', FILENAME = 'D:\MSSV_1954052080_1_NDF2.ndf' )
TO FILEGROUP F2

− Kiểm tra trong Database Properties

f) Thêm log file tên log1
ALTER DATABASE MSSV_1954052080_1
ADD LOG FILE (NAME ='log1', FILENAME = 'D:\MSSV_1954052080_1_Log1.ldf' )

− Kiểm tra trong Database Properties


Bài 2: Chạy code sql script sau để tạo CSDL SmallWorks:
USE Master;
CREATE DATABASE SmallWorks ON PRIMARY
( NAME = 'SmallWorksPrimary'
, FILENAME = 'C:\SmallWorks.mdf'
, SIZE = 10MB
, FILEGROWTH = 20%

, MAXSIZE = 50MB)
, FILEGROUP FileGroup1
( NAME = 'SmallWorksData1'
, FILENAME = 'C:\SmallWorksData1.ndf'
, SIZE = 10MB
, FILEGROWTH = 20%
, MAXSIZE = 50MB)
, FILEGROUP FileGroup2
( NAME = 'SmallWorksData2'
, FILENAME = 'D:\SmallWorksData2.ndf'
, SIZE = 10MB
, FILEGROWTH = 20%
, MAXSIZE = 50MB)
LOG ON
( NAME = 'SmallWorks_log'
, FILENAME = 'C:\SmallWorks_log.ldf'
, SIZE = 10MB
, FILEGROWTH = 10%
, MAXSIZE = 20MB);
GO
USE SmallWorks;
GO
ALTER DATABASE SmallWorks
MODIFY FILEGROUP FileGroup1 DEFAULT;
GO

ContactID int NOT NULL
, FirstName varchar(75) NOT NULL
, LastName varchar(75) NOT NULL
, EmailAddress varchar(255) NULL

, Phone varchar(25) NULL
) ON FileGroup1;
CREATE TABLE dbo.Product(
ProductID int NOT NULL
, ProductName varchar(75) NOT NULL
, ProductNumber nvarchar(25) NOT NULL
, StandardCost money NOT NULL
, ListPrice money NOT NULL
) ON FileGroup2;
INSERT dbo.Contact
(ContactID, FirstName, LastName, EmailAddress, Phone)
SELECT ContactID, FirstName, LastName, EmailAddress,
Phone
FROM AdventureWorks.Person.Contact
WHERE ContactID < 5000;
INSERT dbo.Product
(ProductID, ProductName, ProductNumber, StandardCost,
ListPrice)
SELECT ProductID, Name, ProductNumber, StandardCost,
ListPrice
FROM AdventureWorks.Production.Product;
ALTER DATABASE SmallWorks MODIFY FILEGROUP
FileGroup2 READONLY; --READWRITE

CREATE TABLE dbo.Contact(

a) Giải thích các đặc điểm của CSDL SmallWorks (của các Data file, Log file, File group, Table,
dữ liệu của các Table)

 SmallWorksData1 thuộc FileGroup1. FileGroup1 có thuộc tính Default mặc định

 SmallWorksData2 thuộc FileGroup2. FileGroup2 có thuộc tính Read-Only, là chỉ có thể
thực hiện thao tác xem.
 SmallWorks_log thuộc log file
b) Xem và chụp dữ liệu bảng Contact trước và sau khi thực hiện câu lệnh sau

USE SmallWorks
DELETE FROM dbo.Contact WHERE ContactID<500;
//trước sau vẫn chạy được
c) Xem và chụp dữ liệu bảng Product trước và sau khi thực hiện câu lệnh sau
USE SmallWorks
DELETE FROM dbo.Product WHERE ProductID<500;
//sau khi chạy câu lệnh, bị lỗi
− Khơng thể thực hiện xóa do bảng Product thuộc FileGroup2, mà FileGroup2 đang ở chế
độ Read-Only. Cần thiết lập lại thuộc tính
ALTER DATABASE SmallWorks MODIFY FILEGROUP FileGroup2 READWRITE;

Bài 3: Thực hành về Synonym:
a) Nêu ý nghĩa, cách dùng của Synonym. Synonym có thể dùng cho các loại đối tượng nào trong
các loại views, tables, stored procedures, và functions?


− Ý nghĩa: Tạo tên ảo cho 1 đối tượng cơ sở dữ liệu như views, tables, stored procedures,
và functions.
− Cách dùng:
CREATE SYNONYM [schema_name_1.] Synonym_Name
FOR Object;

− Loại đối tượng:
b) Đặt Synonym NhanVien cho bảng HumanResources.Employee trong CSDL AdventureWorks,
sau đó viết truy vấn xem dữ liệu bảng HumanResources.Employee dùng Synonym NhanVien

USE AdventureWorks
CREATE SYNONYM NhanVien
FOR AdventureWorks.HumanResources.Employee
Select * From NhanVien --xem DL

Bài 4: Tạo 1 CSDL mới tên MSSV_2 và thực hiện các yêu cầu sau:
USE master GO
CREATE DATABASE MSSV_1954052080_2

a) Thay đổi owner của CSDL bằng system stored procedure sp_changedbowner: xem owner của
CSDL bằng cửa sổ property của CSDL, chạy lệnh thay đổi sang owner khác, sau đó xem lại
owner mới

USE MSSV_1954052080_2 GO
sp_changedbowner 'sa' GO

b) Xem thông tin của (một và của nhiều) CSDL bằng system stored procedure sp_helpdb:
sp_helpdb
sp_helpdb 'MSSV_1954052080_2'

c) Trình bày các lựa chọn về auto growth, auto shrink và readonly, tiến hành chỉnh các lựa chọn
này cho 1 CSDL:
d) Thực hiện bằng câu lệnh: Tạo mới 1 schema tên MySchema, tạo 1 bảng MyTable thuộc
MySchema, chuyển MyTable sang schema khác, xóa MySchema.

− Tạo MySchema
USE MSSV_1954052080_2 GO
CREATE SCHEMA MySchema GO

− tạo 1 bảng MyTable thuộc MySchema

CREATE TABLE MySchema.SinhVien
(MaSV char(10) PRIMARY KEY, HoSV char(100), TenSV char(50)
) GO


− Kiểm tra lại properties

− Chuyển MyTable sang schema khác
CREATE SCHEMA MySchema2 GO
ALTER SCHEMA MySchema2 TRANSFER MySchema.SinhVien GO

− xóa MySchema
DROP SCHEMA MySchema GO

Bảo mật (phần 1/2)
Trên máy host Windows 7, SQL 2008 developer, thực hiện các bài thực hành sau:
Bài 1: Tạo 2 login của SQL Server tên SQLLogin1, SQLLogin2 (chưa phân quyền, để tồn
bộ thơng số mặc định, chụp login properties sau khi tạo)
USE master
CREATE LOGIN SQLLogin1 WITH PASSWORD = '123'
CREATE LOGIN SQLLogin2 WITH PASSWORD = '123'

Bài 2: Gán quyền cho SQLLogin1 để có thể tạo cơ sở dữ liệu nhưng không thể xem thấy được tất
cả các cơ sở dữ liệu do login khác tạo ra

− Login properties – Server Roles – tick dbcreator
Đăng nhập bên SQLLogin1:
o Các CSDL mà login SQLLogin1 nhìn thấy
o Tạo Database ABC: tạo thành cơng
Bài 3: Gán quyền cho SQLLogin2 để có thể tạo login mới, xem, sửa các login đã tạo. Chụp đăng

nhập bằng SQLLogin2 và tạo thành công 1 login mới LogAFromLG2, sau đó sửa thành login
LogBFromLG2.

− Login properties – Server Roles – tick securityadmin
Đăng nhập bên SQLLogin1:
o Tạo Login LogAFromLG2: CREATE LOGIN LogAFromLG2 WITH
o Đổi tên: ALTER LOGIN LogAFromLG2 WITH NAME = LogBFromLG2

PASSWORD = '123'

Bài 4: Tạo SQLLogin3 và gán cho login SQLLogin3 thành database user tên
SQLLogin3_DBuser1 của cơ sở dữ liệu AdventureWorks

− Tạo SQLLogin3: CREATE LOGIN SQLLogin3 WITH PASSWORD = '123'
− Gán cho login SQLLogin3 thành database user tên SQLLogin3_DBuser1 của cơ sở dữ
liệu AdventureWorks:


Bài 5: Gán quyền cho SQLLogin3_DBuser1 chỉ được xem và thêm dữ liệu nhưng khơng cho xóa
dữ liệu bảng department, và kiểm tra quyền.

− Phân quyền

− Kiểm tra


Trên máy ảo Windows 2003 Server, SQL 2005 developer, thực hiện các bài thực hành sau:
Bài 6: Tạo 1 domain account mới tên MSSV của SV làm bài, tạo login từ account của domain này,
và đăng nhập thành công vào Domain và SQL Server (chưa phân quyền, chụp màn hình chỉnh
domain policies, chụp khi đăng nhập thành công bằng login MSSV)


− Tạo Domain account:
o B1: Program – Administrative Tools - Active Directory Users and Computers
o B2: New user: nhập info (pass: có chữ hoa và số)
o B3: Tiếp, chọn Domain Controller Security Policy, thêm account vừa tạo, KQ:

o B4: Đăng nhập vào account vừa tạo:
− Tạo Login từ account vừa tạo: (acc MSSV)
o Tạo Login: security – Login – new login
o Đăng nhập
− Kiểm tra phân quyền: server roles chưa có tick gì cả
Bài 7: Gán cho login MSSV thành database user tên DBuser2 của cơ sở dữ liệu AdventureWorks

Bên login sa:
− tạo database user:

Bài 8: Gán quyền cho database user DBuser2 để chỉ có quyền duy nhất: SELECT trên 2 cột
EmployeeID và BirthDate của bảng Employee


Bên login sa:
− Phân quyền:

Bên login MSSV:
− Kiểm thử:

Bài 9: Tạo 1 login của SQL Server tên SQLLogin3, gán thành user DBuser3 của cơ sở dữ liệu
AdventureWorks, gán DBuser3 là thành viên Database role db_datareader. Đăng nhập bằng
SQLLogin3, hỏi:


a) Info bảng hiển thị full, vẫn select được
b) Chọn Deny quyền View definition trên table HumanResouces.Department của DBuser3.
Bên login sa:
o CSDL – security – users – Dbuser3 (properties) – Securable – Add - lựa bảng và
tick quyền ở phần bảng phía dưới
Bên login SQLLogin3:
* So sánh: Bảng HumanResouces.Department khơng cịn hiển thị bên phần Object
Explorer
* Chỉ ẩn hiển thị bảng nhưng vẫn được quyền xem dữ liệu trong bảng này


c) Lấy lại quyền View definition, deny quyền Select trên table HumanResouces.Department của
DBuser3.

Bên login sa:
o CSDL – security – users – Dbuser3 (properties) – Securable – Add - lựa bảng và
tick quyền ở phần bảng phía dưới
Bên login SQLLogin3:
* Ta thấy, bảng HumanResouces.Department không được hiển thị.
* Không thể xem do ta đã giới hạn quyền xem.
Bài 10: Tạo 1 login của SQL Server tên SQLLogin4, gán thành user DBuser4 của cơ sở dữ liệu
AdventureWorks. Tìm phương án gán quyền để DBuser4 có thể sao lưu CSDL AdventureWorks,
nhưng khơng thấy nội dung bên trong (View definition) của CSDL AdventureWorks. Liệt kê và
chụp các bước thực hiện.

Bên login sa:
o Tạo login SQLLogin4 và gán thành DBuser4:
o Phân quyền chỉ cho sao lưu: tick Grant (backup database & backup log), deny
(view definition)
Bên login SQLLogin4:

o Kiểm thử hiển thị: ko hiển thị
o Kiểm thử sao lưu CSDL: thành công

Bảo mật (phần 2/2)
Bài 1: Dùng hàm EncryptByPassPhrase và DecryptByPassPhrase để mã hóa và giải mã hóa một
chuỗi văn bản unicode (tiếng Việt có dấu)

− Tạo 1 database BaoMat, tạo 1 bảng TaiKhoan có 3 cột. Tên đăng nhập, mật khẩu, mật
khẩu mã hóa. Thêm các tài khoản người dùng vào bảng TaiKhoan đó
Create Database BaoMat Go ---tao DB
Use BaoMat Go
Create Table TaiKhoan
(
ID varchar (20) primary key,
Pass nvarchar (50),
EncrypyedData varbinary (8000)
) ---tao bang
---them DL
Insert into TaiKhoan
Values ('An', '12345', EncryptByPassPhrase ('An', '12345'))
Insert into TaiKhoan
Values ('Binh', '12358', EncryptByPassPhrase ('An', '12358'))

Bài 2: Tạo Database Master key bằng password là ‘dkjuw4r$$#1946kcj$ngJKL95Q’
Use BaoMat
Create Master Key
Encryption By password = 'dkjuw4r$$#1946kcj$ngJKL95Q'
Go
Select name, is_master_key_encrypted_by_server From sys.databases


Bài 3: Tạo một Certificate tên HRCert
Create Certificate HRCert
With Subject = 'HRCert';
Go


Bài 4: Tạo một SymetricKey tên CommentKey, CommentKey được mã hóa bởi Certificate HRCert
bằng giải thuật DES
Create Symmetric Key CommentKey
With Algorithm = DES
Encryption By Certificate HRCert;
/* Mã hóa đối xứng */

Bài 5: Thêm 2 tài khoản người dùng vào bảng TaiKhoan. SymmetricKey CommentKey, để mã hóa
chuỗi mật khẩu và ghi chuỗi đã mã hóa vào cột mật khẩu mã hóa. SELECT bảng để thấy dữ liệu
đã mã hóa (dạng nhị phân).
---mở key mã khóa
Open Symmetric Key CommentKey
Decryption By Certificate HRCert
Insert Into TaiKhoan
Values ('MAK', '789', ENCRYPTBYKEY(KEY_GUID('CommentKey'), '789'))
Insert Into TaiKhoan
Values ('HLNQ', '2001', ENCRYPTBYKEY(KEY_GUID('CommentKey'), '2001'))
---Khóa key mã hóa
Close Symmetric Key CommentKey

Bài 6: Dùng SymetricKey CommentKey để giải hóa dữ liệu (dùng hàm DecryptByKey) đang lưu
trong cột mật khẩu mã hóa.
---mở key mã khóa
Open Symmetric Key CommentKey

Decryption By Certificate HRCert
Go
Select ID, CONVERT(varchar(20), Decryptbykey (EncrypyedData))
As 'mahoa' From TaiKhoan
---Khóa key mã hóa
Close Symmetric Key CommentKey

SAO LƯU – PHỤC HỒI DỮ LIỆU
A. SAO LƯU – PHỤC HỒI CSDL FULL/DIFFERENT
Bài 1: Tạo cơ sở dữ liệu mới tên CSDL1 với:
use master create database CSDL1

− Recovery model: Full
use master
alter database CSDL1 set recovery FULL
select name, recovery_model_desc from sys.databases where name = 'CSDL1'

− Tạo 1 table tên SinhVien có 3 cột MSSV, HoSV và TenSV (không nhập liệu)
use CSDL1
create table SinhVien
(
MSSV char(10) Primary key, HoSV nvarchar(10),TenSV nvarchar(20)

)

Sao lưu full/different bằng công cụ:
Bài 2: Bằng công cụ, hãy sao lưu cơ sở dữ liệu chế độ sao lưu FULL vào file CSDLFull1.bak

− Chuột phải DB – Tasks – Backup – Chọn backup type (Full) & địa chỉ lưu
Bài 3: Mở và nhập 1 hàng dữ liệu là thông tin của người làm bài vào bảng SinhVien

Bài 4: Bằng công cụ, hãy sao lưu cơ sở dữ liệu chế độ Different vào file CSDLDiff1.bak

− Chuột phải DB – Tasks – Backup – Chọn backup type (Diffểntial) & địa chỉ lưu


Phục hồi từ file sao lưu full, different bằng công cụ:
Bài 5: Xóa cơ sở dữ liệu CSDL1 đã sao lưu
Bài 6: Bằng công cụ (cửa sổ phục hồi), hãy phục hồi cơ sở dữ liệu đã xóa từ 2 file sao lưu
CSDLFull1.bak và CSDLDiff1.bak ở trên, chụp thông báo phục hồi thành công sau khi phục hồi
một file. Xem và chụp dữ liệu bảng SinhVien.

− Chuột phải DB – Tasks – Restore – Database:
o Full:
▪ (General): Device – chọn vtri đã lưu file, tick bên dưới.
▪ (Options): tick ‘Overwrite the exxisting database (with replace)’; tick
‘…restore with norecovery’
o Diff:
▪ (General): Device – chọn vtri đã lưu file, tick bên dưới.
▪ (Options): tick ‘…restore with recovery’
Sao lưu full/different bằng lệnh SQL:
Bài 7: câu lệnh SQL, hãy sao lưu cơ sở dữ liệu chế độ sao lưu FULL vào file CSDLFull2.bak
USE master
BACKUP DATABASE CSDL1
TO DISK = 'D:\Thuc hanh 1804\CSDLFull2.bak'

Bài 8: Mở và nhập thêm 1 hàng dữ liệu là vào bảng SinhVien, chụp dữ liệu trong table sau khi
nhập liệu (2 hàng)
Bài 9: Bằng câu lệnh SQL, hãy sao lưu cơ sở dữ liệu chế độ Different vào file CSDLDiff2.bak
USE master
BACKUP DATABASE CSDL1

TO DISK = 'D:\Thuc hanh 1804\CSDLDiff2.bak'
WITH DIFFERENTIAL

Phục hồi từ file sao lưu full, different bằng lệnh SQL:
Bài 10: Xóa cơ sở dữ liệu CSDL1 đã sao lưu, chụp xóa thành cơng và cửa sổ Object explorer sau
khi xóa
USE master GO
DROP DATABASE CSDL1

Bài 11: Viết lệnh SQL để phục hồi cơ sở dữ liệu đã xóa từ 2 file sao lưu CSDLFull2.bak và
CSDLDiff2.bak ở trên, chụp code và thông báo phục hồi thành công sau khi phục hồi một file. Xem
và chụp dữ liệu bảng SinhVien.
---Phuc hoi Full
RESTORE DATABASE CSDL1
FROM DISK = 'D:\Thuc hanh 1804\CSDLFull2.bak'
WITH NORECOVERY
---Phuc hoi Diff
RESTORE DATABASE CSDL1
FROM DISK = 'D:\Thuc hanh 1804\CSDLDiff2.bak'
WITH RECOVERY

B. CÁC NỘI DUNG SAO LƯU, PHỤC HỒI KHÁC
Bài 12: Viết lệnh sao lưu CSDL Adventureworks thành 3 phần khác nhau lưu vào 3 file (Back up
stripe)
USE master GO
BACKUP DATABASE AdventureWorks
TO
DISK = 'D:\Thuc hanh 1804\AdventureWorksStripe1.bak',



DISK = 'D:\Thuc hanh 1804\AdventureWorksStripe2.bak',
DISK = 'D:\Thuc hanh 1804\AdventureWorksStripe3.bak'
WITH DESCRIPTION = 'Striped Backup'

Bài 13: Viết lệnh sao lưu CSDL Adventureworks thành 2 phần giống nhau lưu vào 2 file (Mirrored
Back up)
use master
go
Backup database AdventureWorks
To Disk = 'D:\Thuc hanh 1804\AdventureWorksMirrored1.bak'
Mirror
To Disk = 'D:\Thuc hanh 1804\AdventureWorksMirrored2.bak'
with format, description = 'Mirrored Backup'

Bài 14: Viết lệnh sao lưu CSDL1 chế độ Full có đặt password cho file sao lưu. Sau đó phục hồi lại
CSDL1.
USE master GO
BACKUP DATABASE CSDL1
TO DISK = 'D:\Thuc hanh 1804\CSDL1.bak'
WITH PASSWORD = 'HuaLeNhuQuynh'
--Drop CSDL1
DROP DATABASE CSDL1
--Sau đó phục hời lại CSDL1.
USE master GO
RESTORE DATABASE CSDL1
FROM DISK = 'D:\Thuc hanh 1804\CSDL1.bak'
WITH PASSWORD = 'HuaLeNhuQuynh'

Bài 15: Viết lệnh phục hồi CSDL1, trong đó có dời nơi lưu data file và log file của CSDL1 đến
đường dẫn mới.


− Đầu tiên, kiểm tra Properties & chụp vị trí đang lưu (mục Files):
---Sao luu CSDL CSDL1
USE master GO
BACKUP DATABASE CSDL1
TO DISK = 'D:\Thuc hanh 1804\CSDL15.bak'
WITH FORMAT
--Drop
DROP DATABASE CSDL1
---Phuc hoi
USE master GO
RESTORE DATABASE CSDL1
FROM DISK = 'D:\Thuc hanh 1804\CSDL15.bak'
WITH
MOVE 'CSDL1' TO 'D:\Thuc hanh 1804\CSDL1.mdf',
MOVE 'CSDL1_Log' TO 'D:\Thuc hanh 1804\CSDL1.ldf',
REPLACE

Bài 16: Thực hiện sao lưu Tail log cho CSDL1. Sau đó viết lệnh phục hồi dùng các file: Full,
Different và Tail log.
--Sao luu CSDL1 Full và CSDL1_Backup.bak
USE master
BACKUP DATABASE CSDL1 TO DISK = 'D:\Thuc hanh 1804\CSDL1_Backup.bak'
--them du lieu
USE CSDL1
INSERT INTO SinhVien VALUES ('1', N'Hứa _ 1', N'Lê Như Quỳnh _ 1')
--Sao luu CSDl1 Differential, cũng sao lưu vào file CSDL1_Backup.bak
USE master



BACKUP DATABASE CSDL1
TO DISK = 'D:\Thuc hanh 1804\CSDL1_Backup.bak'
WITH DIFFERENTIAL
--Nhap them sv vao bang SV
USE CSDL1
INSERT INTO SinhVien VALUES ('2', N'Hứa _ 2', N'Lê Như Quỳnh _ 2')
--Sao luu CSDL1 taillog, cũng sao lưu vào file D:\QTCSDL\CSDL1_Backup.bak
USE master
BACKUP LOG CSDL1
TO DISK = 'D:\Thuc hanh 1804\CSDL1_Backup.bak'
--Xoa CSDL1
DROP DATABASE CSDL1
--Phuc hoi Full tu phan 1
RESTORE DATABASE CSDL1
FROM DISK= 'D:\Thuc hanh 1804\CSDL1_Backup.bak' WITH FILE = 1, NORECOVERY
--Phuc hoi Diff tu phan 2
RESTORE DATABASE CSDL1
FROM DISK= 'D:\Thuc hanh 1804\CSDL1_Backup.bak' WITH FILE = 2, NORECOVERY
--Phuc hoi taillog tu phan 3
RESTORE LOG CSDL1
FROM DISK= 'D:\Thuc hanh 1804\CSDL1_Backup.bak' WITH FILE = 3, RECOVERY
--Truy xuat Dl
USE CSDL1 SELECT * FROM SinhVien

Bài 17: Viết lệnh phục hồi CSDL2, lùi CSDL2 lại thời điểm ngay sau khi tạo CSDL2 (lúc chưa
nhập thông tin SV)
Thời gian cách nhau hơn 2’ sẽ tốt
---Tao CSDL2
use master
create database CSDL2 --10:21 AM, 18/04

---Tạo bảng SinhVien
use CSDL2
create table SinhVien
(MSSV char(10) Primary key, HoSV nvarchar(10), TenSV nvarchar(20)
)--10:22 AM, 18/04
---Sao luu CSDL2 vao CSDL2.bak' use master
Backup database CSDL2
To disk = 'D:\Thuc hanh 1804\CSDL2.bak' --10:24 AM, 18/04
--Nhap dl vao SV
use CSDL2
insert into SinhVien
Values ('1954052080', N'Hứa', N'Lê Như Quỳnh')--10:33, 18/04
--Nhap dl vao SV
use CSDL2
insert into SinhVien
Values ('52080', N'Hứa', N'Lê Như Quỳnh (2)')--10:34, 18/04
--cho khoang 5p
--xóa 1 dịng
use CSDL2
delete from SinhVien where MSSV = '52080';--10:40, 18/04
--Sao luu CSDL2 taillog, file CSDL2_Log.bak
backup log CSDL2
to disk = 'D:\Thuc hanh 1804\CSDL2_Log.bak' with format --10:53, 18/04
-----Phục hời CSDL về thời diểm chưa có bảng SV
--Xoa CSDL4
use master go
drop database CSDL2 --10:55, 18/04
--Phục hồi



set dateformat DMY
restore database CSDL2
from disk = 'D:\Thuc hanh 1804\CSDL2.bak'
with stopat = '18/04/2022 10:22:00', replace, recovery

Bài 18: Viết lệnh thực hiện sao lưu dạng Database snapshot cho Adventureworks. Sau đó xóa 3
bảng đầu tiên trong Adventureworks, và viết lệnh phục hồi Adventureworks dùng file snapshot vừa
tạo.



×