2012-06-14 35 views
12

Tôi đang cố gắng phản chiếu cơ sở dữ liệu trong máy chủ sql. Tôi tạo ra một cơ sở dữ liệu và lấy một bản sao lưu của nó và khôi phục trên máy chủ khác. Nhưng sau khi thực hiện tất cả các hoạt động và bấm vào bắt đầu phản ánh, sau đó nó hiển thị lỗi sau. Tôi đặt "KHÔNG" cho tùy chọn Máy chủ nhân chứng enter image description here.Cách giải quyết Lỗi: 1418 trong máy chủ sql khi phản chiếu

Tôi đã thực hiện theo các bước phản chiếu trong số link Tại đây, hãy tạo người dùng trên cả máy chủ chính và máy chủ nhân bản có cùng thông tin đăng nhập trong BƯỚC 3. Có cần phải tạo cùng một người dùng trên cả hai máy chủ không? hoặc bất kỳ giải pháp thay thế nào ở đó?

+0

Tôi nghĩ rằng vấn đề trên đã được gây ra do số cổng. Vì các số cổng giống nhau cho instance1 và instance2. Số cổng mặc định cho máy chủ nguyên tắc là 5022, Mirror là 5023 và chứng là 5024.so khi kiểm tra số cổng . – sandy

Trả lời

17

Tôi cũng gặp phải sự cố tương tự. bạn cần phải kiểm tra các mục sau đây một lần.

  1. Chuyển đến services.msc và kiểm tra các máy chủ sql đang chạy theo đó tài khoản. Đảm bảo rằng các dịch vụ tác nhân máy chủ sql và máy chủ sql sẽ chạy với cùng thông tin đăng nhập.

  2. trong máy chủ cơ sở dữ liệu máy nhân bản, bạn nên thực hiện các bước tương tự như bước 1. Cung cấp thông tin tương tự như trong máy chủ chính. Nếu người dùng đó không có mặt, hãy tạo một tài khoản mới trên cả hai máy chủ có cùng thông tin đăng nhập.

  3. Bây giờ, máy chủ chính và máy chủ sql thêm thông tin đăng nhập mới theo số Bảo mật -> Đăng nhập. Đặt vai trò máy chủ là Sysadmin và công khai. Thêm cùng một người dùng trên máy chủ nhân bản.

  4. Bây giờ hãy làm gương trong cơ sở dữ liệu chính. Bạn đã không nhận được bất kỳ lỗi nào ở đó.

+0

Bạn nói "Hãy chắc chắn rằng máy chủ sql máy chủ và dịch vụ đại lý máy chủ sql nên chạy với cùng một thông tin" trên cả Nguyên tắc và Gương. Tôi không chạy trong Windows Active Directory Domain. Dịch vụ của tôi phải chạy dưới tài khoản người dùng cục bộ. Câu trả lời của bạn có giả định rằng người dùng là người dùng Active Directory không? – Dave

+0

Cảm ơn, chạy máy chủ SQL trong tài khoản miền đã sửa nó cho tôi. Có mặt giảm nào thay vì tài khoản cục bộ không? –

+0

bằng cách nói cùng thông tin đăng nhập, có cần phải có cùng mật khẩu cho người dùng không? Tôi đã cố gắng và không lặp lại thành công. tài khoản miền người dùng máy chủ pricipal và máy nhân bản sử dụng quản trị cục bộ có cùng tên nhưng có thể là mật khẩu khác. nó có hoạt động bình thường không? – RayofCommand

1

Bạn cũng có thể không để lại bản sao được thiết kế để phản chiếu ở trạng thái khôi phục mà phải được để lại để bật tính năng phản chiếu.

Thông thường, thủ tục SQL Server mirroring là:

1) Sao lưu cơ sở dữ liệu gốc và sao chép nó vào máy chủ dành cho mirroring.

2) Sao lưu nhật ký giao dịch và sao chép nó vào máy chủ dự định để phản chiếu.

3) Chọn khôi phục cơ sở dữ liệu từ MMC và xác định vị trí sao lưu cơ sở dữ liệu và khôi phục nó bằng các tùy chọn được đặt để rời khỏi trạng thái không hoạt động mà không có hồi chuyển giao dịch.

4) Chọn khôi phục và chọn tệp, sau đó chọn tệp nhật ký và khôi phục bản sao lưu tệp nhật ký cũng với tùy chọn không có rolloback và không hoạt động. Đây là nút radio thứ hai ở dưới trang tùy chọn trên máy chủ sql 2008.

5) chuyển đến máy chủ sao chép cơ sở dữ liệu gốc và bật phản chiếu. Bạn sẽ cần phải sử dụng một tài khoản có quyền sysadmin trên cả hai máy chủ cho các cuộc hội thoại phản chiếu để khởi động.

2

Cùng một vấn đề, lỗi 1418. Có phải tất cả mọi thứ gợi ý ở đây: link

Trong hindsight đó là hiển nhiên. Khi hoàn thành MIRRORING> CONFIGURE SECURITY WIZARD, bạn sẽ nhận được một trang giải thích kết quả. Nhìn vào các nút SQL1 và SQL2, dòng này là chìa khóa:

On the principal server instance, SQL1 
Listener Port: 5022 
Encryption: **Yes** 


On the mirror server instance, SQL2 
Listener Port: 5022 
Encryption: **No** 

Giải pháp.Sau khi hoàn thành thuật sĩ trên tất cả các nút SQL thực hiện:

drop endpoint Mirroring 
go 


CREATE ENDPOINT Mirroring 
STATE = STARTED 
AS TCP (LISTENER_PORT = 5022) 
FOR DATABASE_MIRRORING 
(ENCRYPTION = DISABLED,ROLE=ALL) 
GO 

Bắt đầu phản ánh, giải quyết vấn đề.

Hy vọng rằng sẽ giúp người Scott

0

tôi gặp vấn đề này trước đây, tất cả các đường chuyền xác nhận. Sử dụng điểm cuối mới cuối cùng, nó hoạt động. Nguyên nhân gốc là 5022 có thể chặn phiên khác.

0

lỗi của tôi 1418 đã được giải quyết bằng cách sử dụng cùng một lá thư ổ đĩa trên cả hai máy chủ ...

Mặc dù MS gợi ý mà bạn có thể sử dụng các chữ khác nhau, tôi quyết định sử dụng thư ổ đĩa cùng ...

Từ MS:

Also, we recommend that, if it is possible, the file path (including the drive letter) of the mirror database be identical to the path of the principal database. If the file paths must differ, for example, if the principal database is on drive 'F:' but the mirror system lacks an F: drive, you must include the MOVE option in the RESTORE statement.

2

Sau khi hết tất cả các tùy chọn như đã đề cập ở trên, tôi đã có biến thể đối với môi trường phản chiếu. Chúng tôi đã có một máy chủ SQL 2008 đóng góp cho máy chủ năm 2014 trong cấu hình Gương chính. Máy chủ Sql 2014 cũng đang được sử dụng trong cấu hình AlwaysOn cho HA của một số Db khác. Các điểm kết thúc được đặt tên khác nhau vào sql 2008 và sql 2014.

Sau khi nhận được lỗi được đề cập ở trên, tôi thấy rằng Mã hóa cho năm 2008 là RC4 và cho năm 2014 là AES. Kết quả là, nó đã không bắt tay với điểm cuối SQL2014. Tôi đã thay đổi mã hóa để phù hợp với SQL 2008 bằng lệnh dưới đây và viola !!

ALTER ENDPOINT [Hadr_endpoint] 
    FOR DATA_MIRRORING (ENCRYPTION = REQUIRED ALGORITHM RC4) 
0

Đối với tôi, tôi đã có cây vấn đề này và giải quyết nó cuối cùng bằng cách thả và tái tạo lại các điểm cuối mirroring (SSMS -> Server Objects -> thiết bị đầu cuối -> Database Mirroring)

0

Drop endpoint Mirroring

Đi

CREATE ENDPOINT Mirroring 
STATE = STARTED 
AS TCP (LISTENER_PORT = 5022) 
FOR DATABASE_MIRRORING 
(ENCRYPTION = DISABLED,ROLE=ALL) 
GO 

Bắt đầu phản ánh, giải quyết vấn đề.

Hy vọng rằng sẽ giúp người Scott

này thực sự giúp tôi nhờ scott

Tnx Ritz

0

Trong trường hợp không có ở trên làm việc, đây là những gì gây ra vấn đề của tôi. Chạy truy vấn sau đây trên cả hai máy chủ và nhìn kỹ

SELECT @@Version 

tôi đã có một số thông tin cập nhật trên máy chủ của chính mình mà không được cài đặt trên máy chủ nhân bản của tôi.

Ngoài ra, bạn có thể xem thông tin bổ sung trong Nhật ký máy chủ SQL với lý do tại sao việc sao chép không hoạt động. Đó là cách tôi nhận ra tôi đã có một phiên bản khác nhau trên cả hai máy chủ.

0

Trên SQL Server 2016, giải pháp là để [tài khoản miền] của bạn thành sysadmin trên cả máy chủ chính và máy chủ nhân bản.Sau đó tạo một tài khoản mới như của máy chủ chính sau

use [master] 
GO 
CREATE LOGIN [domain\mirrorservername$] FROM WINDOWS 
GO 
GRANT CONNECT ON ENDPOINT::[Mirroring] TO [domain\mirrorservername$] 
GO 

Gương server

use [master] 
GO 
CREATE LOGIN [domain\principalservername$] FROM WINDOWS 
GO 
GRANT CONNECT ON ENDPOINT::[Mirroring] TO [domain\principalservername$] 
GO 

Bạn cần phải tạo ra những tài khoản và cấp CONNECT phép như các tài khoản là những người sử dụng trong suốt bắt tay giữa máy chủ chính và máy nhân bản.

Để biết thêm chi tiết về lỗi, hãy kiểm tra nhật ký lỗi sql của bạn.

Hy vọng bài đăng này sẽ giúp ai đó.

0

Tôi gặp vấn đề tương tự. Tôi đã cố gắng để thiết lập phản chiếu trên Windows 2008 - R2, trên một thiết lập tên miền. Như đã đề xuất ở trên bởi một trong những chuyên gia, tôi đã kiểm tra tài khoản SQL Server 'đăng nhập' cho SQLSERVER và SQLSERVERAGENT và sử dụng cùng một tài khoản Miền cho các dịch vụ SQL Server trên cả hai máy. Tôi đã có thể thiết lập phản chiếu.

Cảm ơn sự giúp đỡ!

Các vấn đề liên quan