Обсуждение: vacuumdb has a fatal after database rename
Hi friends, If I rename the database postgres before vacuumdb , the vacuumdb say FATAL: database "postgres" does not exist. [postgres@vdedu1 ~]$ vacuumdb -a vacuumdb: vacuuming database "mydb" vacuumdb: vacuuming database "postgres" vacuumdb: vacuuming database "template1" [postgres@vdedu1 ~]$ psql -c"alter database postgres rename to postgresql;" ERROR: current database cannot be renamed STATEMENT: alter database postgres rename to postgresql; ERROR: current database cannot be renamed [postgres@vdedu1 ~]$ psql psql (9.5.4) Type "help" for help. postgres=# alter database postgres rename to postgresql; ERROR: current database cannot be renamed STATEMENT: alter database postgres rename to postgresql; ERROR: current database cannot be renamed postgres=# \q [postgres@vdedu1 ~]$ psql -d template1 -c"alter database postgres rename to postgresql;" ALTER DATABASE [postgres@vdedu1 ~]$ psql -l FATAL: database "postgres" does not exist psql: FATAL: database "postgres" does not exist [postgres@vdedu1 ~]$ psql -l -d template1 List of databases Name | Owner | Encoding | Collate | Ctype | Access privile ges ------------+----------+----------+-------------+-------------+----------------- ------ mydb | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | postgresql | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/pos tgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/pos tgres (4 rows) [postgres@vdedu1 ~]$ vacuumdb -a FATAL: database "postgres" does not exist vacuumdb: vacuuming database "mydb" vacuumdb: vacuuming database "postgresql" vacuumdb: vacuuming database "template1" [postgres@vdedu1 ~]$ 2016-09-28 TT
On Wed, Sep 28, 2016 at 09:54:41PM +0800, huang wrote: > If I rename the database postgres before vacuumdb , the vacuumdb say > FATAL: database "postgres" does not exist. So don't rename it. It's being used because you are running vacuumdb using postgres shell account. You could try something like: PGDATABASE=template1 vacuumdb -az but generally speaking it is not advised to rename postgres db. Best regards, depesz
CgpJIGFtIHNvcnJ5IC4gCndlIHdhbnQgdG8gaGlkZSB0aGUgZGF0YWJhc2UgcG9zdGdyZXMgZm9y ICB0aGUgc2VjdXJpdHkgY29uY2VybiAuIApIb3dldmVyIEkgZm91bmQgdGhpcyBtZXNzYWdlIGlu IGxvZyAuIApJIHRoaW5rIHRoZXJlIGFyZSBzb21lIHByb2JsZW0gaW4gdmFjdXVtZGIgLgpCdXQg IG5vdyBJIHNlZSAgdGhpcyBpcyBteSBtaXN0YWtlIC4gIAoKCkJlc3QgcmVnYXJkcywKVFQKCgpB dCAyMDE2LTA5LTI5IDAxOjI5OjM3LCAiaHViZXJ0IGRlcGVzeiBsdWJhY3pld3NraSIgPGRlcGVz ekBkZXBlc3ouY29tPiB3cm90ZToKPk9uIFdlZCwgU2VwIDI4LCAyMDE2IGF0IDA5OjU0OjQxUE0g KzA4MDAsIGh1YW5nIHdyb3RlOgo+PiBJZiBJIHJlbmFtZSB0aGUgZGF0YWJhc2UgcG9zdGdyZXMg IGJlZm9yZSB2YWN1dW1kYiAsIHRoZSB2YWN1dW1kYiBzYXkKPj4gRkFUQUw6ICBkYXRhYmFzZSAi cG9zdGdyZXMiIGRvZXMgbm90IGV4aXN0Lgo+Cj5TbyBkb24ndCByZW5hbWUgaXQuIEl0J3MgYmVp bmcgdXNlZCBiZWNhdXNlIHlvdSBhcmUgcnVubmluZyB2YWN1dW1kYgo+dXNpbmcgcG9zdGdyZXMg c2hlbGwgYWNjb3VudC4KPgo+WW91IGNvdWxkIHRyeSBzb21ldGhpbmcgbGlrZToKPgo+UEdEQVRB QkFTRT10ZW1wbGF0ZTEgdmFjdXVtZGIgLWF6Cj4KPmJ1dCBnZW5lcmFsbHkgc3BlYWtpbmcgaXQg aXMgbm90IGFkdmlzZWQgdG8gcmVuYW1lIHBvc3RncmVzIGRiLgo+Cj5CZXN0IHJlZ2FyZHMsCj4K PmRlcGVzego+Cg==