データベース - postgreSQL - 消せないデータベースの回復 - 概要


クラウディア 


1. 概要

1. 概要

 きっかけは、馬鹿な話なのであります。  ちょっと実験であれこれさわっているうちに、変なデータベースを作成してしまったようなのです。  ある日、「pg_dumpall」しようとしたら・・・。

$ pg_dumpall --column-inserts --username=postgres> pg_dumpall.sql
"atabase name contains a newline or carriage return: "
 いきなり、終わってしまったのだ。  出力した「pg_dumpall.sql」の中を見ても、「CREATE DATABASE」の後、「" WITH TEMPLATE = template0 OWNER = ユーザ名;」で終わっておる。  ふと思いついて、データベースの一覧を見てみたら

postgres=# \l
                                        データベース一覧
   名前    |  所有者  | エンコーディング | 照合順序 | Ctype(変換演算子) |      アクセス権
-----------+----------+------------------+----------+-------------------+-----------------------
 \r        | ........ | UTF8             | C        | C                 |

 ・・・	略	・・・

 template0 | postgres | UTF8             | C        | C                 | =c/postgres          +
           |          |                  |          |                   | postgres=CTc/postgres
 template1 | postgres | UTF8             | C        | C                 | postgres=CTc/postgres+
           |          |                  |          |                   | =c/postgres
 testdb\r  | ........ | UTF8             | C        | C                 |
(12 行)
 所有者名は、伏字にしましたが、データベース名に「\r」やら「testdb\r」やら、変な名前のものができておる。  記憶では、ちょっとした確認をしたときに、誤ったような気はする・・・。  あわくって、

drop database '\r';
 とかやってみても

ERROR:  syntax error at or near "'\r'"
行 1: drop database '\r';
                    ^
 とか言われてしまう。  馬鹿な話である、「\r」などの特殊記号をもったデータベースは、作成できても、これを削除することはできないようなのです。  まいったな。  というわけで、これは、この状況を元の状態に復旧する大冒険(いや、そんな大したことではない)の話なのです。  以下、次ページへ続く。

audiobook.jp
AbemaTV 無料体験
葬送のフリーレン Prime Video
健康サポート特集
損保との違い
U-NEXT
TikTok Shop 【リピート用プログラム】
薬屋の独り言
JETBOY
それがだいじWi-Fi
5G CONNECT
サウンドハウス
EMEET 1
ハイスピードプラン
【usus ウズウズ】
Amazonギフトカード
アフィリエイトのアクセストレード
ベルリッツ
ネットオークションの相場、統計、価格比較といえばオークファン
earthcar(アースカー)
EaseUS