Từ ArcSDE 10 đọc ArcSDE Geodatabase 9.3

Thảo luận trong 'Giải đáp thắc mắc các phần mềm: ArcGIS, ArcView 3.' bắt đầu bởi nhatgisv, 1/8/12.

  1. nhatgisv

    nhatgisv New Member

    Tham gia ngày:
    20/7/12
    Bài viết:
    14
    Đã được thích:
    0
    Điểm thành tích:
    0
    Chào các cao thủ!
    Bác nào biết cái này giúp em với.
    Bệnh tình của em như vầy:
    - Lúc trước xài ArcGIS 9.3, em có tạo một Geodatabase bằng ArcSDE 9.3. Geodatabase AAA hoạt động tốt và em đã làm nhiều thứ trong này. Em đã backup nó lại bằng SQL 2008.
    - Giờ chuyển sang xài ArcGIS 10. Đã cài ArcSDE 10 và tạo một Geodatabase BBB mới, đã kết nối được, chạy ngon lành.
    - Để đỗ dữ liệu từ AAA vào BBB em thực hiện restore trong SQL 2008. Sau khi restore xong thì hỡi ôi không start services esri_sde được!

    Vậy bác nào có cao kiến gì chỉ em với. Túm lại là làm sao đọc được một ArcSDE Geodatabase 9.3 từ ArcGIS 10.???

    Em thank các bác!
     
    Tags:
  2. cuonglp

    cuonglp Member

    Tham gia ngày:
    21/10/11
    Bài viết:
    48
    Đã được thích:
    0
    Điểm thành tích:
    6
    Nơi ở:
    Hà Nội
    Với nhiệm vụ của bạn, nếu làm từ đầu thì có thể như sau:
    được thực hiện trong ArcCatalog
    Cách 1:
    1. Lưu bản copy dữ liệu:
    - Tạo 1 File Geodatabase (hoặc Personal Geodatabase) mới, tên là GDB_bk chẳng hạn
    - Select all các đối tượng trong GeoDB AAA và copy
    - Paste sang GDB_bk
    2. Phục hồi lại dữ liệu:
    - Kết nối thành công tới GeoDB BBB
    - Mở GDB_bk, select all và copy
    - Paste sang GeoDB BBB
    Cách 2:
    Export GeoDB ÂAA thành gdb_bk.XML
    Import file gdb_bk.XML vào GeoDB BBB mới tạo

    Còn với cách làm của bạn thông qua SQL Server thì về lý thuyết mình nghĩ là được nhưng còn thực hiện thì chưa làm bao giờ nên không có ý kiến hoặc có bước nào đó bạn làm chưa chuẩn. Thử làm lại.
    Trường hợp chưa mất cái GeoDB AAA thì làm theo cách mình nói ở trên. Làm thông qua chính ArcGIS có lẽ sẽ tốt hơn cách của bạn.
    Good luck!
     
  3. nt2008

    nt2008 New Member

    Tham gia ngày:
    21/10/11
    Bài viết:
    136
    Đã được thích:
    0
    Điểm thành tích:
    0
    Túm lại là tên Database AAA hay BBB phải giống nhau. Lệch tên là toi! :))
     
  4. learngis

    learngis Moderator

    Tham gia ngày:
    1/1/12
    Bài viết:
    252
    Đã được thích:
    4
    Điểm thành tích:
    18
    Nơi ở:
    Huế
    Thế này nhé. Trong arcgis/arccatalog bạn tao một database mới có sever nằm đúng với cái dâtabáea bạn có trước đó đả import du liệu vào
    Trong SQL SERVER .Bây h bạn chỉ cần đồng bộ hóa 2 dâta này là ok ah.có gì
     
  5. nt2008

    nt2008 New Member

    Tham gia ngày:
    21/10/11
    Bài viết:
    136
    Đã được thích:
    0
    Điểm thành tích:
    0
    Xin hỏi trong ArcCatalog tạo database cho ArcSDE như thế nào? Ngoài ra, nếu dữ liệu có thông tin Version thì import kiểu gì?
     
    Last edited by a moderator: 2/8/12
  6. learngis

    learngis Moderator

    Tham gia ngày:
    1/1/12
    Bài viết:
    252
    Đã được thích:
    4
    Điểm thành tích:
    18
    Nơi ở:
    Huế
    Click right Database server/ New Geodatabse. Dữ liệu tùy bạn install ArcSDE for SQL hay ArcSDE for postgres. nếu database có tên A có dữ liệu import sẳn rồi và một database B chưa có dữ liệu việc bạn muốn cả 2 database này có cùng dữ liệu thì đồng bộ hóa thôi. nếu bạn có dữ liệu .mdf rồi thì chỉ cần attach vào thôi. Tại sao lại liên quan đến Version
     
    Last edited by a moderator: 2/8/12
  7. nt2008

    nt2008 New Member

    Tham gia ngày:
    21/10/11
    Bài viết:
    136
    Đã được thích:
    0
    Điểm thành tích:
    0
    Không hiểu đồng chí có nhầm lẫn gì không. Database server không liên quan đến câu hỏi của chủ thớt ở đây. ArcSDE for SQL hay postgres mà đông chí nói ở đây là bản cho SQL Express, bộ cài đi cùng với bộ cài của ArcGIS desktop. Phiên bản này chỉ cho 5 người đọc và 2 người biên tập dữ liệu cùng lúc. Còn phiên bản mà chủ thớt ở đây hỏi là bản ArcSDE cho SQL server (tương đương license của ArcGIS Server Basic). Muốn tạo database thì phải thực hiện việc post installation sau khi đã cài đặt SQL Server và ArcSDE. Còn ArcCatalog chỉ có thể tạo connection đến database đã được tạo.

    Còn trường hợp của chủ thớt thì bạn làm theo các bước sau:
    1. Sau khi cài đặt SQL Server 2008, ArcSDE 10.0 thì tiến hành cài post installation
    2. Làm thao tác post installtion: chú ý database tạo ra trong quá trình post installation phải có tên giống hệt như database đã được backup ở phiên bản 9.3
    3. Tắt service ArcSDE vừa tạo ra sau quá trình post installtion và tiến hành restore database trong SQL Server (chú ý option overwrite)
    4. Đồng bộ hóa user: sde bằng lệnh: sp_change_users_login. Cái này nhằm khôi phục user: sde nên phải nhớ password của user này trong database 9.3:

    USE [DATABASE]
    GO
    EXEC sp_change_users_login 'Update_One', 'sde','sde','xxx'

    'xxx' là password nhé!

    Một số phương pháp backup khác như Export database ra XML sau đó Import lại hoặc export ra một mdb khác. Tuy nhiên, các phương pháp này không backup được một số cấu hình dữ liệu như: Domain, Subtype hay Version. Chỉ có backup trong SQL server và restore như trên thì mới lưu và khôi phục hoàn toàn trạng thái của CSDL.
     
  8. nhatgisv

    nhatgisv New Member

    Tham gia ngày:
    20/7/12
    Bài viết:
    14
    Đã được thích:
    0
    Điểm thành tích:
    0
    Trước hết em cám ơn các bác đã quan tâm và cho ý kiến về vấn đề của em.
    Tuy nhiên em vẫn chưa giải quyết triệt để vấn đề của em được:
    - Database của em được tạo bằng SQL 2008 (AAA.mdf), sau đó em kết nối bằng ArcSDE 9.3 để chỉnh sửa, đọc/ghi,... dữ liệu không gian trong ArcGIS.
    - Vì vậy nếu không kết nối bằng ArcSDE được thì làm sao lấy được các FeatureClass trong AAA.mdf?
    Nhờ các bác chỉ giáo thêm. !

    ---------- Post added at 11:39 AM ---------- Previous post was at 11:27 AM ----------

    Ah, để em thử cách của bác nt2008 xem. Gần đúng ý em rồi!
     
  9. nt2008

    nt2008 New Member

    Tham gia ngày:
    21/10/11
    Bài viết:
    136
    Đã được thích:
    0
    Điểm thành tích:
    0
    Bạn có thể tạo database mới từ SQL server rồi tạo kết nối từ trình cài đặt post installation. Tuy nhiên, theo kinh nghiệm thì mỗi lần tạo database mới thì tạo từ post installation (chạy hết options của nó). Nhưng như mình đã nói, muốn restore database của 9.3 thì database mới tạo phải có tên trùng với tên của database cũ.
     
  10. nhatgisv

    nhatgisv New Member

    Tham gia ngày:
    20/7/12
    Bài viết:
    14
    Đã được thích:
    0
    Điểm thành tích:
    0
    Bác nt2008 ơi!
    Em đã làm theo các bước 1, 2, 3 của bác đều OK, nhưng đến bước 4 thì nó bị error như thế này: View attachment 780

    có lẽ chưa hoàn thành bước này, nên khi start services sde thì nó không start được: View attachment 781

    Có gì bác xem giúp em với!

    Tks bác nhiều!
     
  11. hodung

    hodung New Member

    Tham gia ngày:
    27/7/12
    Bài viết:
    28
    Đã được thích:
    0
    Điểm thành tích:
    1
    Bác làm theo các bước của bác nt2008 sau đó bác dùng ngay cái trình quản lý của SQL Sever là SQL Server Management Studio vào mục sercurity chọn login và chọn sde sau đó phải chuột vào chọn Properties rồi gõ lại cái password và Confim password là cái mà bác dùng của CSDL 9.3 là ok (em thì hay dùng management studio, ko quen dùng dòng lệnh :) )

    Ah tiện thể có bác nào có bản ArcSDE cho SQL Server và Oracle thì share cho em với ah :D
     
    Last edited by a moderator: 4/8/12
  12. nhatgisv

    nhatgisv New Member

    Tham gia ngày:
    20/7/12
    Bài viết:
    14
    Đã được thích:
    0
    Điểm thành tích:
    0
    Vẫn chưa được các bác ah,
    bác nào có cao kiến gì không, giúp thêm cho em với!
    Em cám ơn.
     
  13. nhatgisv

    nhatgisv New Member

    Tham gia ngày:
    20/7/12
    Bài viết:
    14
    Đã được thích:
    0
    Điểm thành tích:
    0
    Có bác nào đã làm được vấn đề trên, xin chỉ giáo cho em với! Em đang loay hoay hoài mà chưa được. Mặc dù tên CSDL và pass đều làm giống như các bác nói, chỉ có điều khi start services sau khi đã restore database thì không được. Trước khi restore thì start OK. Thế mới tức!
     
  14. nguyenthoaiuk

    nguyenthoaiuk New Member

    Tham gia ngày:
    12/7/12
    Bài viết:
    2
    Đã được thích:
    0
    Điểm thành tích:
    0
    Bạn có thể dùng ArcCataloge 10.1 để đọc file của 9.3 của bạn file Geodatabase.
    Mình cũng bị như bạn và đã làm thành công.
    Thanks
     
  15. cujpap

    cujpap New Member

    Tham gia ngày:
    5/6/12
    Bài viết:
    52
    Đã được thích:
    0
    Điểm thành tích:
    0
    Em đang gặp lỗi này, các anh có thể hướng dẫn em fix lỗi này
    em chạy lệnh
    USE [database]
    GO
    EXEC sp_change_users_login 'Update_One', 'sde','sde'
    nhưng khi start lại service sde thì báo lỗi
    The ArcSde Service (esri_sde) service on Local Computer started and then stoppoed.
    Some services stop automatically if they are not in use by other services or programs
    Thanks
     
  16. nguyenphugis

    nguyenphugis New Member

    Tham gia ngày:
    28/2/12
    Bài viết:
    336
    Đã được thích:
    1
    Điểm thành tích:
    0
    Nơi ở:
    Thừa Thiên Huế
    Web:
    Chào bạn,
    Bạn điều chỉnh lại câu lệnh:
    use [database_name]--Tên CSDL của bạn
    go
    EXEC sp_change_users_login 'Update_One', 'sde', 'sde' --Nhớ đúng đủ khoảng cách.
    go

    Sau khi chạy câu lệnh, kiểm tra SQL đã khởi động chưa. Nếu chưa bạn phải khởi động dịch vụ SQL trước, sau đó khởi động dịch vụ SDE (SDE Services).
    Hy vọng giúp được bạn.
    Thân ái.
     
  17. cujpap

    cujpap New Member

    Tham gia ngày:
    5/6/12
    Bài viết:
    52
    Đã được thích:
    0
    Điểm thành tích:
    0
    Em không rành về lập trình SQL, khi em chạy câu lệnh thì thông báo:
    Command (s) completed successfully.
    em có cần lưu lại query này không?
    em cố khởi động lại service của SQL rồi khởi động service của ArcSDE
    nhưng không được
    em vẫn chưa giải quyết được vấn đề
    Mọi người giúp em!!!
    Thanks
     
  18. nguyenphugis

    nguyenphugis New Member

    Tham gia ngày:
    28/2/12
    Bài viết:
    336
    Đã được thích:
    1
    Điểm thành tích:
    0
    Nơi ở:
    Thừa Thiên Huế
    Web:
    Chào bạn,
    Bước 1: Stop SQL Server services.
    Bước 2: Start SQLServer services trở lại (Lưu ý: SDE Services lúc này sẽ ở trạng thái ngừng hoạt động).
    Bước 3: Tiến hành Restore database trong SQL (chọn Overwite database để ghi đè).
    Bước 4: Chạy câu lệnh:
    use [database_name]--Tên CSDL của bạn
    go
    EXEC sp_change_users_login 'Update_One', 'sde', 'sde' --Nhớ đúng đủ khoảng cách.
    go
    (Không cần lưu câu lệnh này trong SQL. Hãy đảm bảo câu lệnh chạy thành công./.)
    Bước 5: Sau khi restore thành công, khởi động lại Services SDE.
    Chúc bạn thành công.
     

Chia sẻ trang này

Share
Đang tải...