많은 서비스가 처음에 설치하게되면 기본적으로 SQLite3 DB를 사용하고있는데, 사용자가 많아지게되면 동시성 작업이 안되어 lock이 걸리는 문제가 빈번하게 발생한다. 따라서 MySQL이나 Postgresql로 변경을함.
SQLite3에서 MySQL로 이전작업에는 아래와같은 github repository를 사용해서 이전이 가능했는데 (이것도 뭐 공식 repository가 아니라서 쭉 사용이 가능할진 모르겠지만...)
https://github.com/majidalavizadeh/sqlite-to-mysql
GitHub - majidalavizadeh/sqlite-to-mysql: convert SQLite databases to MySQL SQL dump
convert SQLite databases to MySQL SQL dump. Contribute to majidalavizadeh/sqlite-to-mysql development by creating an account on GitHub.
github.com
Postgresql로 이전작업에는 마땅한 repository가 안보여서 찾아보니 sequel이라는 툴을 사용하면 굉장히 쉽게 이전 작업을 할수있다고한다. 참고로, pgloader를 사용하면 된다라는 사람이 많은데 mlflow의 sqlite db를 옮기려고 써봤더니 에러가 너무많이 발생했다.
https://github.com/jeremyevans/sequel
GitHub - jeremyevans/sequel: Sequel: The Database Toolkit for Ruby
Sequel: The Database Toolkit for Ruby. Contribute to jeremyevans/sequel development by creating an account on GitHub.
github.com
sequel은 ruby기반으로 작성된 프로그램이며, 사용방법은 다음과같다.
# ruby & gem 설치 및 sequel 설치
apt update
apt install ruby-full rubygems
apt install -y build-essential libsqlite3-dev pkg-config libpq-dev
gem install sqlite3 pg
gem install sequel
# migration실행
# db파일을 별도로 빼서 작업해도 된다
sequel -C sqlite:///mlruns/mlflow.db postgres://root:password@postgresql.d-mlflow.svc.cluster.local/mlflow
주의 할 점은 이전작업에 생각보다 시간이 소요된다... sqlite db를 dump했을때 70만줄 기준으로 약 3~4시간 소요됐다.
'Develop > DevOps' 카테고리의 다른 글
[Kubernetes] Dex with Google Connector (0) | 2025.08.20 |
---|---|
[Kubernetes] etcdDatabaseHighFragmentationRatio 장애 대응 (업데이트 2025.07.27) (1) | 2025.07.11 |
[Kubernetes] kubespray etcd metrics 활성화 (1) | 2025.07.11 |
[Go] Kubebuilder 사용해보기 - 1 (0) | 2025.06.27 |
[Istio] 공부한거 이것저것 정리 (WIP) (0) | 2025.06.21 |