---恢复内容开始---
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的相差很大。
---恢复内容结束---
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