dockerで上げた11gをShift-JISに変更しました。
変更方法は以下の記事の通りです。
qiita.com
この記事のとおりに文字コードを変更したところ以下のような問題が発生したので対応を行いました
- データが永続化されなくなった
- sysやsystemでアクセスできなくなった
準備
docker版Oracle DBだと、oracleユーザにsqlplusなどのパスが通っていないため、
oracleユーザに切り替えるときは
# su oracle
として環境を引き継ぐ必要があります
1 データが永続化されなくなった
以下のように文字コードのみ変更すると、DBの保存先が変わるため永続化できなくなります
createdb.sh -dbchar JA16SJIS
変更前
変更後
これを回避するため、-filedir
、-logdir
のオプションも指定する必要があります
createdb.sh -dbchar JA16SJIS -filedir /u01/app/oracle/oradata/XE -logdir /u01/app/oracle/oradata/XE
2 sysやsystemでアクセスできなくなった
createdb.sh
を実行すると、DBが再構成されるため、オプションで指定していたパスワードでアクセスできなくなります
パスワードの再設定が必要です
docker exec <container name> ./setPassword.sh <your password>