پشتیبانها-موسسه چشم انداز هزاره سوم ملل-آموزش کاربردی GIS و RS
اگر میخواهید با استفاده از SQL Server از پایگاه داده پشتیبان تهیه کنید، راهی آسان و فرآیندی مرحله به مرحله است. اما در مثال زیر از اسکریپت SQL، دستورات SQL و نوار وظیفهی ویندوز برای تهیهی پشتیبان استفاده میکنیم. خط دستوری سرعت بالاتری دارد. ابتدا باید برای هر پایگاه داده حالت بازیابی نسخهی پشتیبان را روی full تنظیم کنید.
پشتیبان گیری کامل : این نوع پشتیبان گیری از کل پایگاه داده پشتیبان میگیرد.
پشتیبانهای متوسط یا میانه : تا زمان آخرین پشتیبان گیری کامل، تغییرات پایگاه داده رامیگیرد.
1- یک اسکریپت پشتیبان کامل ایجاد کنید. برای هر پایگاه داده یک عمل مجزا تعریف و ایجاد کنید. و خطوط کد زیر را درون اسکریپتی با نام full backup وارد کنید:
BACKUP DATABASE [DEMO] TO DISK =
N’C:\backup\SQLEXPRESS\DEMO.bak’ WITH NOFORMAT, NOINIT,
RETAINDAYS = 13, NAME = N’DEMO-Full Database Backup’, SKIP,
NOREWIND, NOUNLOAD, STATS = 10
GO
2- یک اسکریپت میانه با نام differential script ایجاد کنید:
BACKUP DATABASE [DEMO] TO DISK =
N’C:\backup\SQLEXPRESS\DEMO.bak’ WITH DIFFERENTIAL, NOFORMAT,
NOINIT, RETAINDAYS = 13, NAME = N’DEMO-Full Database Backup’, SKIP,
NOREWIND, NOUNLOAD, STATS = 10
GO
3- یک اسکریپت گزارشگیری از پشتیبان با نام backup Log ایجاد کنید.
BACKUP LOG [DEMO] TO DISK = N’C:\backup\SQLEXPRESS\DEMO.bak’
WITH NOFORMAT, NOINIT, RETAINDAYS = 13, NAME = N’DEMOTransaction Log Backup’, SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
4- یک اسکریپت کوچک کنندهی پایگاه داده با نام shrink script ایجاد کنید:
USE [DEMO]
GO
DBCC SHRINKFILE (N’DEMO_Log’ , 0, TRUNCATEONLY)
GO
5- یک اسکریپت به روزرسانی شاخص و آمار ایجاد کنید:
EXEC sp_updatestats
go
EXEC sp_MSforeachtable @command1=’print ”?”’, @command2=’set
QUOTED_IDENTIFIER ON;ALTER INDEX ALL ON ? REBUILD WITH
(FILLFACTOR=90,ONLINE=OFF)’
6- برای هر اسکریپت، یک فایل batch برای صدا زدن فایلهای .sql ایجاد خواهیم کرد.
7- فایلهای batch پشتیبان کامل را در ریشهی درایو C ایجاد کنید (مثلاً با نام full_backup.bat). و درون این فایل دستهای کد زیر را وارد کنید:
cd\
sqlcmd -S lukesavage\sqlexpress -i c:\backup\SQLEXPRESS\full_backup.sql -o
c:\backup\SQLEXPRESS\full_backup_log.txt
exit
8- برای فایلهای batch پشتیبان میانه به صورت intermediate_backup.bat نامگذاری کنید و خطوط کد زیر را در فایل batch پشتیبان میانه وارد کنید:
cd\
sqlcmd -S lukesavage\sqlexpress -i c:\backup\SQLEXPRESS\intermediate_backup.sql -o
c:\backup\SQLEXPRESS\inter_backup_log.txt
exit
9- برای فایلهای batch کم حجم کنندهی فایلهای log پشتیبان به صورت backup_logs.bat نامگذاری کنید و درون این فایل دستهای کد زیر را وارد کنید:
cd\
sqlcmd -S lukesavage\sqlexpress -i c:\backup\SQLEXPRESS\truncate_logs.sql -o
c:\backup\SQLEXPRESS\truncate_log.txt
exit
10- برای فایلهای batch کم حجم کنندهی داده و فایلهای log به صورت shrink.bat نامگذاری کنید و درون این فایل دستهای کد زیر را وارد کنید:
cd\
sqlcmd -S lukesavage\sqlexpress -i c:\backup\SQLEXPRESS\shrink.sql -o
c:\backup\SQLEXPRESS\shrink_log.txt
exit
11- برای فایلهای batch به روزرسانی شاخص و آمار به صورت update_stats_index.bat نامگذاری کنید و درون این فایل دستهای کد زیر را وارد کنید:
cd\
sqlcmd -S lukesavage\sqlexpress -d Demo -i c:\backup\SQLEXPRESS\update_stats_index.sql -o
c:\backup\SQLEXPRESS\VECTOR_update_stats_index_log.txt
exit
12- برای هر فایل پشتیبان، وظایف زمانبندی شدهی ویندوز ایجاد کنید.
1-12 فایل پشتیبان گیر کامل- Full Backup: هفتهای یکبار و صبح زود را برای اجرای این فایل پشتیبان مشخص کنید.
2-12 فایل پشتیبان میانه – Intermediate backup: یکبار در هر روز به غیر از روزی که پشتیبان کامل انجام میشود.
12-3 فایل Log پشتیبان: بسته به حجم تغییرات و بار کاری، یکبار تا دوبار در هر روز انجام میشود.
4-12 فایلهای Log و کم حجم کنندهی داده: این فایلها دقیقاً بعد از فایل Log پشتیبان اجرا میشود.
5-12 فایلهای به روزرسانی آمار و شاخص و تجزیه و تحلیل: روزی یکبار بعد از پشتیبانها اجرا میشود.
اسکریپت های نگه داری خودکار
با انتشار ArcGIS 10.1، میتوان اسکریپتهای پایتون برای تجزیه و تحلیل، به روز رسانی آمار و فایلهای شاخص ایجاد کرد. در این مثال از ArcSDE و خط دستوری SQL Server برای انجام عملیات مذکور استفاده میکنیم.
اسکریپتهای SQL Server و ArcSDE
1- ArcSDE را با ابزارهای خط دستور نصب کنید (در نسخهی 10.2 به بعد ArcGIS ابزارهای خط دستوری تعبیه شده اند).
2- به SQL Server Studio Management بروید و یک Query ایجاد کنید. در این Query تجزیه و تحلیل، به روزرسانی آمار و بازسازی شاخصها را با رشد 10 درصدی شاخصها انجام خواهد شد. خطوط کد زیر را در Query بنویسید:
EXEC sp_updatestats
go
EXEC sp_MSforeachtable @command1=’print ”?”’, @command2=’set
QUOTED_IDENTIFIER ON;ALTER INDEX ALL ON ? REBUILD WITH
(FILLFACTOR=90,ONLINE=OFF)’
3- Query را با نام update_stats_index.sql در ریشهی درایو C:\ ذخیره کنید.
4- یک فایل batch با نام <name>_state_compression.bat با خطوط اسکریپت موجود در مرحلهی 5 ایجاد کنید. به خروجی فایل log ایجاد شده، دقت کنید. اگر به فشرده سازی حالت صفر نیازی ندارید، خطوط قرمز رنگ را پاک کنید. در حالت فشرده سازی صفر همهی دادهها درون جداول مبنا قرار میگیرند.
نکته: برای تغییرات سبک و حجم پایین بهتر است فشرده سازی حالت صفر هر 6 ماه یکبار و برای تغییرات سنگین و حجم بالا هر 4 روز یکبار و برای تغییرات معمولی و حجم متوسط یکبار در هفته انجام شود.
sdemon -o kill -t all -p <sa password> -i sde:sqlserver:<instance> -s <server name> -D
<geodatabase1> -N
sdemon -o kill -t all -p <sa password> -i sde:sqlserver:<instance> -s <server name> -D
<geodatabase2> -N
sqlcmd -S localhost -U sa -P <sa password> -D <geodatabase1> -i c:\update_stats_index.sql
-o c:\update_stats_preindex_log.txt
sqlcmd -S localhost -U sa -P <sa password> -D <geodatabase2> -i c:\update_stats_index.sql
-o c:\update_stats_preindex_log.txt
sdeversion -o delete -i sde:sqlserver:<instance> -V dbo.edit -u sa -p <sa password> -s
<server name> -D <geodatabase1> -N
sdeversion -o compress -u sa -p <sa password> -i sde:sqlserver:<instance> -s <server
name> -D <geodatabase1> -N
sdeversion -o compress -u sa -p <sa password> -i sde:sqlserver:<instance> -s <server
name> -D <geodatabase2> -N
sqlcmd -S localhost -U sa -P <sa password> -D <geodatabase1> -i c:\update_stats_index.sql
-o c:\update_stats_index_postlog.txt
sqlcmd -S localhost -U sa -P <sa password> -D <geodatabase2> -i c:\update_stats_index.sql
-o c:\update_stats_index_postlog.txt
sdeversion -o create -i sde:sqlserver:<instance> -V edit -P dbo.default -A public -u sa -p <sa
password> -s <server name> -D <geodatabase1>
sqlcmd -S localhost -U sa -P <sa password> -D <geodatabase1> -i c:\update_stats_index.sql
-o c:\update_stats_index_log.txt
خطوط کد بالا را در فایل batch به صورت <name>_state_compression.bat نامگذاری کنید.
یک زمانبند کار در قسمت پنجرهی زمانبند کار در جایی که باینریهای ArcSDE و ابزارهای خط دستور در آنجا قرار دارند، ایجاد کنید.
همزمانی خودکار با python
1- ArcCatalog را باز کنید و model builder را انتخاب کنید.
2- در model builder، arctoolbox را باز کنید و از Data Management Tools به Distributed Geodatabase و سپس ابزار Synchronize Changes را انتخاب کنید.
3- ابزار Synchronize Changes را درون model builder بکشید.
4- در model builder روی مستطیل Synchronize Changes دوبار کلیک کنید تا کادر محاورهای این ابزار باز شود. فیلدها را با اطلاعات مناسب پر کنید.
5- Ok را کلیک کنید و مدل را با زدن کلیداجرا کنید.
6- بعد از اجرای موفق مدل، از منوی model و از زیر منوی Export گزینهی To Python Script را بزنید. و این اسکریپت پایتونی را در مکانی که Python و ArcCatalog نصب شدهاند، ذخیره کنید. به عنوان مثال میتوانید این اسکریپت را با نام auto_synch.py در ریشهی درایو C ذخیره کنید.
7- اسکریپت را ویرایش کنید و خطوط توپر زیر را اضافه کنید تا در هنگام اجرای اسکریپت، عمل Log گیری فعال شود.
# Set the necessary product code
import arcinfo
# Import arcpy module
import arcpy
# Record Logs
arcpy.SetLogHistory(True)
# Local variables:
demo_default_osa_sde = “Database Connections\\demo.default.osa.sde”
repl_default_osa_sde = “Database Connections\\repl.default.osa.sde”
# Process: Synchronize Changes
arcpy.SynchronizeChanges_management(demo_default_osa_sde, “DBO.Lucity_Demo”,
repl_default_osa_sde, “FROM_GEODATABASE1_TO_2”, “IN_FAVOR_OF_GDB1”,
“BY_OBJECT”, “DO_NOT_RECONCILE”)
8- به زمانبند کار ویندوز بروید و یک basic task ایجاد کنید.
9- Next را بزنید و عمل همزمان سازی را برای هر زمانی که میخواهید، زمانبندی کنید. در اکثر سازمانها، یکبار در روز و یا هفتهای یکبار مناسب است. در این مثال یک زمانبند هفتگی ایجاد میکنیم. next را بزنید.
10- در این مثال، همزمان سازی را برای روز جمعه و هفتهای یکبار تنظیم میکنیم.
11- از TOC موجود در سمت چپ پنجره روی Action کلیک و start a program را انتخاب و ok را بزنید.
12- از ویندوز ویستا به بعد باید اسکریپت را به صورت برنامهی پایتونی اضافه کنیم. در قسمت Add arguments (optional): باید محل ذخیرهی اسکریپت پایتون را اضافه کنید و هم چنین در قسمت Start in (optional) محل پوشهی پایتون قابل اجرا را اضافه کنید. next را بزنید.
13- تیک گزینهی Open the Properties dialog for this task when I click Finish را بزنید تا کاربر مدیر را برای اجرای این وظیفه و بررسی مجوزهایش تعیین کنید. روی finish کلیک کنید.
14- دکمهی رادیویی Run whether user is logged on or not را انتخاب کنید و تیک گزینهی Run with highest privileges را بزنید.
15- روی new task راست کلیک کنید و run را انتخاب کنید.
16- محل تاریخچهی نتایج ArcToolBox را با استفاده از مسیر زیر بررسی کنید:
C:\Users\<username>\AppDate\Roaming\ESRI\Desktop10.1\ArcToolbox\History
برگرفته از کتاب تولید و به کارگیری (Enterprise Geodatabase (SDE در اپلیکیشن های Web GIS
نویسنده: دکتر محمد بافقی زاده
نشر: انتشارات اکادمیک
12 نظرات