误删WAL日志后如何启动数据库

版权声明:本文为博主原创之文章,未经博主允许谢绝转载。 https://blog.csdn.net/pg_hgdb/article/details/84067589

WAL日志是瀚高数据库至关重要的日志文件,数据恢复的重要依靠保障,如果误删了数据库会怎样呢?

模拟情况:
 

[highgo@sds1 data]$ pg_ctl start
server starting
[highgo@sds1 data]$ LOG:  00000: database system was shut down at 2018-11-14 23:31:31 CST
LOG:  00000: creating missing WAL directory "pg_xlog/archive_status"
LOG:  00000: invalid primary checkpoint record
LOG:  00000: invalid secondary checkpoint record
PANIC:  XX000: could not locate a valid checkpoint record

[highgo@sds1 data]$ psql
FATAL:  57P03: the database system is starting up
psql: FATAL:  57P03: the database system is starting up
[highgo@sds1 data]$ LOG:  00000: startup process (PID 5967) was terminated by signal 6: Aborted
LOG:  00000: aborting startup due to startup process failure

[highgo@sds1 data]$ 
[highgo@sds1 data]$ psql
psql: could not connect to server: No such file or directory
	Is the server running locally and accepting
	connections on Unix domain socket "/tmp/.s.PGSQL.5866"?

可以发现数据库已经起不来了,找不到相应的WAL日志文件。如果我们没有对应的wal文件的话,则只能:

[highgo@sds1 data]$ pg_resetxlog -D $PGDATA
Transaction log reset

启动数据库:

[highgo@sds1 data]$ pg_ctl start
server starting
[highgo@sds1 data]$ LOG:  00000: database system was shut down at 2018-11-14 23:39:15 CST
LOG:  00000: MultiXact member wraparound protections are now enabled
LOG:  00000: database system is ready to accept connections
LOG:  00000: autovacuum launcher started

[highgo@sds1 data]$ psql
psql (4.7.6)

PSQL: Release 4.7.6
Connected to:
HighGo Database V4.7 Enterprise Edition Release 4.7.6 - 64-bit Production

Type "help" for help.

highgo=# 




BY 海无涯

猜你喜欢

转载自blog.csdn.net/pg_hgdb/article/details/84067589
今日推荐