---恢復內容開始---sql
arcsde10 安裝在windows server2008 R2 X64 上。數據庫
從.gdb文件數據庫 拷貝40W多的數據到ArcSDE ,而後postgresql就中止了,arcsde服務還沒中止。真是夠嗆的。windows
究竟是爲何啊?我先看看postgresql的日誌吧:安全
pg的日誌文件位於:C:\Program Files (x86)\PostgreSQL\8.3\data\pg_logsession
打開裏如今最近的那個:這個是剛剛開啓服務的post
2013-08-05 17:33:45 HKT LOG: database system was interrupted; last known up at 2013-08-05 17:27:08 HKT 2013-08-05 17:33:45 HKT LOG: database system was not properly shut down; automatic recovery in progress 2013-08-05 17:33:45 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:33:45 HKT FATAL: the database system is starting up 2013-08-05 17:33:45 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:33:45 HKT LOG: redo starts at 2/3D3C9FB8 2013-08-05 17:33:45 HKT FATAL: the database system is starting up 2013-08-05 17:33:45 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:33:45 HKT FATAL: the database system is starting up 2013-08-05 17:33:45 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:33:45 HKT FATAL: the database system is starting up 2013-08-05 17:33:45 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:33:45 HKT FATAL: the database system is starting up 2013-08-05 17:33:45 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:33:45 HKT FATAL: the database system is starting up 2013-08-05 17:33:45 HKT LOG: record with zero length at 2/3DFBDFA0 2013-08-05 17:33:45 HKT LOG: redo done at 2/3DFBDF70 2013-08-05 17:33:45 HKT LOG: last completed transaction was at log time 2013-08-05 17:31:09.121+08 2013-08-05 17:33:45 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:33:45 HKT FATAL: the database system is starting up 2013-08-05 17:33:46 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:33:46 HKT FATAL: the database system is starting up 2013-08-05 17:33:46 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:33:46 HKT FATAL: the database system is starting up 2013-08-05 17:33:46 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:33:46 HKT FATAL: the database system is starting up 2013-08-05 17:33:46 HKT LOG: database system is ready to accept connections 2013-08-05 17:33:46 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:33:46 HKT FATAL: the database system is starting up 2013-08-05 17:33:46 HKT LOG: autovacuum launcher started 2013-08-05 17:33:46 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:33:46 HKT ERROR: SAVEPOINT can only be used in transaction blocks 2013-08-05 17:33:46 HKT STATEMENT: SAVEPOINT sp_sde_1375695226_0_183466 2013-08-05 17:33:46 HKT NOTICE: there is no transaction in progress 2013-08-05 17:33:46 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:33:46 HKT ERROR: SAVEPOINT can only be used in transaction blocks 2013-08-05 17:33:46 HKT STATEMENT: SAVEPOINT sp_sde_1375695226_0_183469 2013-08-05 17:33:46 HKT NOTICE: there is no transaction in progress 2013-08-05 17:33:46 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:33:47 HKT ERROR: relation "sde.sch_dataset" does not exist 2013-08-05 17:33:47 HKT STATEMENT: SELECT 1 FROM sde.sde.SCH_DATASET WHERE 1 = 0 2013-08-05 17:34:01 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:36:29 HKT ERROR: relation "sde.sch_dataset" does not exist 2013-08-05 17:36:29 HKT STATEMENT: SELECT 1 FROM sde.sde.SCH_DATASET WHERE 1 = 0
剛開啓服務,裏面就有 ERROR的錯誤,這不是FATAL錯誤,就不要緊。this
看看出現FATAL錯誤的這個日誌:spa
2013-08-05 17:30:04 HKT ERROR: relation "sde.sde_logfiles" does not exist 2013-08-05 17:30:04 HKT STATEMENT: SELECT logfile_name, logfile_id, logfile_data_id, registration_id, flags, session_tag, column_name, logfile_data_db, logfile_data_owner, logfile_data_table FROM sde.sde.sde_logfiles WHERE flags%2 = 0 2013-08-05 17:30:13 HKT ERROR: relation "sde.pnamehenan_none" does not exist 2013-08-05 17:30:13 HKT STATEMENT: select sde.sde.pnamehenan_none.* from sde.sde.PNamehenan_none 2013-08-05 17:30:13 HKT ERROR: index "r178_sde_rowid_uk" does not exist 2013-08-05 17:30:13 HKT STATEMENT: drop index sde.r178_sde_rowid_uk 2013-08-05 17:30:13 HKT ERROR: function sde.sde.i178_get_ids(integer, integer) does not exist at character 8 2013-08-05 17:30:13 HKT HINT: No function matches the given name and argument types. You might need to add explicit type casts. 2013-08-05 17:30:13 HKT STATEMENT: SELECT sde.sde.i178_get_ids ($1,$2) 2013-08-05 17:30:13 HKT NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "i178_pk" for table "i178" 2013-08-05 17:30:13 HKT ERROR: column "shape" does not exist at character 52 2013-08-05 17:30:13 HKT STATEMENT: SELECT COUNT(*) FROM sde.sde.pnamehenan_none WHERE Shape IS NOT NULL 2013-08-05 17:31:09 HKT LOG: server process (PID 5688) was terminated by exception 0xC0000005 2013-08-05 17:31:09 HKT HINT: See C include file "ntstatus.h" for a description of the hexadecimal value. 2013-08-05 17:31:09 HKT LOG: terminating any other active server processes 2013-08-05 17:31:09 HKT WARNING: terminating connection because of crash of another server process 2013-08-05 17:31:09 HKT DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory. 2013-08-05 17:31:09 HKT HINT: In a moment you should be able to reconnect to the database and repeat your command. 2013-08-05 17:31:09 HKT WARNING: terminating connection because of crash of another server process 2013-08-05 17:31:09 HKT DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory. 2013-08-05 17:31:09 HKT HINT: In a moment you should be able to reconnect to the database and repeat your command. 2013-08-05 17:31:09 HKT WARNING: terminating connection because of crash of another server process 2013-08-05 17:31:09 HKT DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory. 2013-08-05 17:31:09 HKT HINT: In a moment you should be able to reconnect to the database and repeat your command. 2013-08-05 17:31:09 HKT WARNING: terminating connection because of crash of another server process 2013-08-05 17:31:09 HKT DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory. 2013-08-05 17:31:09 HKT HINT: In a moment you should be able to reconnect to the database and repeat your command. 2013-08-05 17:31:09 HKT WARNING: terminating connection because of crash of another server process 2013-08-05 17:31:09 HKT DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory. 2013-08-05 17:31:09 HKT HINT: In a moment you should be able to reconnect to the database and repeat your command. 2013-08-05 17:31:09 HKT WARNING: terminating connection because of crash of another server process 2013-08-05 17:31:09 HKT DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory. 2013-08-05 17:31:09 HKT HINT: In a moment you should be able to reconnect to the database and repeat your command. 2013-08-05 17:31:09 HKT WARNING: terminating connection because of crash of another server process 2013-08-05 17:31:09 HKT DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory. 2013-08-05 17:31:09 HKT HINT: In a moment you should be able to reconnect to the database and repeat your command. 2013-08-05 17:31:09 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:31:09 HKT FATAL: the database system is in recovery mode 2013-08-05 17:31:09 HKT LOG: all server processes terminated; reinitializing 2013-08-05 17:31:19 HKT FATAL: pre-existing shared memory block is still in use 2013-08-05 17:31:19 HKT HINT: Check if there are any old server processes still running, and terminate them.
在ntstatus.h中,有一行:debug
#define STATUS_ACCESS_VIOLATION ((NTSTATUS)0xC0000005L) // winnt日誌
就是這個錯誤了。尼瑪,查了一下 這就是段錯誤(segmentation fault)啊。PostGreSQL竟然段錯誤中止了。。不過我安裝的arcsde10 for windows自帶的pg,8.3不是最新版本的PostGreSQL。可能新版本解決了bug呢。8.x最新的是8.4 我試試?應該能夠安全升級纔是的。9.x的估計與8.x的相差很大。
---恢復內容結束---
arcsde10 安裝在windows server2008 R2 X64 上。
從.gdb文件數據庫 拷貝40W多的數據到ArcSDE ,而後postgresql就中止了,arcsde服務還沒中止。真是夠嗆的。
究竟是爲何啊?我先看看postgresql的日誌吧:
pg的日誌文件位於:C:\Program Files (x86)\PostgreSQL\8.3\data\pg_log
打開裏如今最近的那個:這個是剛剛開啓服務的
2013-08-05 17:33:45 HKT LOG: database system was interrupted; last known up at 2013-08-05 17:27:08 HKT 2013-08-05 17:33:45 HKT LOG: database system was not properly shut down; automatic recovery in progress 2013-08-05 17:33:45 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:33:45 HKT FATAL: the database system is starting up 2013-08-05 17:33:45 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:33:45 HKT LOG: redo starts at 2/3D3C9FB8 2013-08-05 17:33:45 HKT FATAL: the database system is starting up 2013-08-05 17:33:45 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:33:45 HKT FATAL: the database system is starting up 2013-08-05 17:33:45 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:33:45 HKT FATAL: the database system is starting up 2013-08-05 17:33:45 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:33:45 HKT FATAL: the database system is starting up 2013-08-05 17:33:45 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:33:45 HKT FATAL: the database system is starting up 2013-08-05 17:33:45 HKT LOG: record with zero length at 2/3DFBDFA0 2013-08-05 17:33:45 HKT LOG: redo done at 2/3DFBDF70 2013-08-05 17:33:45 HKT LOG: last completed transaction was at log time 2013-08-05 17:31:09.121+08 2013-08-05 17:33:45 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:33:45 HKT FATAL: the database system is starting up 2013-08-05 17:33:46 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:33:46 HKT FATAL: the database system is starting up 2013-08-05 17:33:46 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:33:46 HKT FATAL: the database system is starting up 2013-08-05 17:33:46 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:33:46 HKT FATAL: the database system is starting up 2013-08-05 17:33:46 HKT LOG: database system is ready to accept connections 2013-08-05 17:33:46 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:33:46 HKT FATAL: the database system is starting up 2013-08-05 17:33:46 HKT LOG: autovacuum launcher started 2013-08-05 17:33:46 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:33:46 HKT ERROR: SAVEPOINT can only be used in transaction blocks 2013-08-05 17:33:46 HKT STATEMENT: SAVEPOINT sp_sde_1375695226_0_183466 2013-08-05 17:33:46 HKT NOTICE: there is no transaction in progress 2013-08-05 17:33:46 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:33:46 HKT ERROR: SAVEPOINT can only be used in transaction blocks 2013-08-05 17:33:46 HKT STATEMENT: SAVEPOINT sp_sde_1375695226_0_183469 2013-08-05 17:33:46 HKT NOTICE: there is no transaction in progress 2013-08-05 17:33:46 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:33:47 HKT ERROR: relation "sde.sch_dataset" does not exist 2013-08-05 17:33:47 HKT STATEMENT: SELECT 1 FROM sde.sde.SCH_DATASET WHERE 1 = 0 2013-08-05 17:34:01 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:36:29 HKT ERROR: relation "sde.sch_dataset" does not exist 2013-08-05 17:36:29 HKT STATEMENT: SELECT 1 FROM sde.sde.SCH_DATASET WHERE 1 = 0
剛開啓服務,裏面就有 ERROR的錯誤,這不是FATAL錯誤,就不要緊。
看看出現FATAL錯誤的這個日誌:
2013-08-05 17:30:04 HKT ERROR: relation "sde.sde_logfiles" does not exist 2013-08-05 17:30:04 HKT STATEMENT: SELECT logfile_name, logfile_id, logfile_data_id, registration_id, flags, session_tag, column_name, logfile_data_db, logfile_data_owner, logfile_data_table FROM sde.sde.sde_logfiles WHERE flags%2 = 0 2013-08-05 17:30:13 HKT ERROR: relation "sde.pnamehenan_none" does not exist 2013-08-05 17:30:13 HKT STATEMENT: select sde.sde.pnamehenan_none.* from sde.sde.PNamehenan_none 2013-08-05 17:30:13 HKT ERROR: index "r178_sde_rowid_uk" does not exist 2013-08-05 17:30:13 HKT STATEMENT: drop index sde.r178_sde_rowid_uk 2013-08-05 17:30:13 HKT ERROR: function sde.sde.i178_get_ids(integer, integer) does not exist at character 8 2013-08-05 17:30:13 HKT HINT: No function matches the given name and argument types. You might need to add explicit type casts. 2013-08-05 17:30:13 HKT STATEMENT: SELECT sde.sde.i178_get_ids ($1,$2) 2013-08-05 17:30:13 HKT NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "i178_pk" for table "i178" 2013-08-05 17:30:13 HKT ERROR: column "shape" does not exist at character 52 2013-08-05 17:30:13 HKT STATEMENT: SELECT COUNT(*) FROM sde.sde.pnamehenan_none WHERE Shape IS NOT NULL 2013-08-05 17:31:09 HKT LOG: server process (PID 5688) was terminated by exception 0xC0000005 2013-08-05 17:31:09 HKT HINT: See C include file "ntstatus.h" for a description of the hexadecimal value. 2013-08-05 17:31:09 HKT LOG: terminating any other active server processes 2013-08-05 17:31:09 HKT WARNING: terminating connection because of crash of another server process 2013-08-05 17:31:09 HKT DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory. 2013-08-05 17:31:09 HKT HINT: In a moment you should be able to reconnect to the database and repeat your command. 2013-08-05 17:31:09 HKT WARNING: terminating connection because of crash of another server process 2013-08-05 17:31:09 HKT DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory. 2013-08-05 17:31:09 HKT HINT: In a moment you should be able to reconnect to the database and repeat your command. 2013-08-05 17:31:09 HKT WARNING: terminating connection because of crash of another server process 2013-08-05 17:31:09 HKT DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory. 2013-08-05 17:31:09 HKT HINT: In a moment you should be able to reconnect to the database and repeat your command. 2013-08-05 17:31:09 HKT WARNING: terminating connection because of crash of another server process 2013-08-05 17:31:09 HKT DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory. 2013-08-05 17:31:09 HKT HINT: In a moment you should be able to reconnect to the database and repeat your command. 2013-08-05 17:31:09 HKT WARNING: terminating connection because of crash of another server process 2013-08-05 17:31:09 HKT DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory. 2013-08-05 17:31:09 HKT HINT: In a moment you should be able to reconnect to the database and repeat your command. 2013-08-05 17:31:09 HKT WARNING: terminating connection because of crash of another server process 2013-08-05 17:31:09 HKT DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory. 2013-08-05 17:31:09 HKT HINT: In a moment you should be able to reconnect to the database and repeat your command. 2013-08-05 17:31:09 HKT WARNING: terminating connection because of crash of another server process 2013-08-05 17:31:09 HKT DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory. 2013-08-05 17:31:09 HKT HINT: In a moment you should be able to reconnect to the database and repeat your command. 2013-08-05 17:31:09 HKT LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 2013-08-05 17:31:09 HKT FATAL: the database system is in recovery mode 2013-08-05 17:31:09 HKT LOG: all server processes terminated; reinitializing 2013-08-05 17:31:19 HKT FATAL: pre-existing shared memory block is still in use 2013-08-05 17:31:19 HKT HINT: Check if there are any old server processes still running, and terminate them.
在ntstatus.h中,有一行:
#define STATUS_ACCESS_VIOLATION ((NTSTATUS)0xC0000005L) // winnt
就是這個錯誤了。尼瑪,查了一下 這就是段錯誤(segmentation fault)啊。PostGreSQL竟然段錯誤中止了。。不過我安裝的arcsde10 for windows自帶的pg,8.3不是最新版本的PostGreSQL。可能新版本解決了bug呢。8.x最新的是8.4 我試試?應該能夠安全升級纔是的。9.x的估計與8.x的相差很大。
------------------------------------------------------
安裝好了 ArcSDE SP1 補丁後,這個問題算是解決了,順便把 SP2-SP5 都安裝了。要順序安裝,SP5 不包括SP1 的內容的。
SP補丁下載地址:
http://support.esrichina.com.cn/support/download/ServicePack/
http://support.esri.com/en/downloads/patches-servicepacks/list/productid/66
其中ArcSDE SP1-5 全部補丁 解決的問題列表有:
http://gisupdates.esri.com/10sp5/ArcSDE/ArcSDE10sp5-issues.htm