日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

 

數據庫在每個企業都占據的非常重要的位置,它存儲著一個公司的命脈。對于數據庫的管理也非常的復雜多變,很多公司都有專業的DBA團隊在管理。

但是,不論有無DBA,對數據庫的操作都不會變少,而且都面臨著相同的問題:

  1. 不是在提數就是在修數的路上
  2. 不是在審核SQL就是在審核SQL的路上
  3. 不是在找歷史記錄就是在找歷史記錄的路上
  4. 不是在備份就是在備份的路上

還有非常多類似的工作,這就讓DBA的工作變得枯燥乏味。

我不是DBA,僅僅是一個懂一點SELECT *的運維工程師,希望能有一個工具能夠幫助開發、DBA甚至運維降低數據庫的操作門檻,希望它具有:

  1. 流程審批功能
  2. 自動糾錯能力
  3. 自動備份能力
  4. 自動發布能力
  5. 歷史操作記錄
  6. 一鍵回滾能力
  7. 版本記錄能力

擁有這些能力,可以讓日常的操作變的簡單,高效。數據庫管理者也有時間去做更有意義的事情。

在過程的過程中,使用過不同的數據庫管理工具,比如Yearning、SQLE,它們本質上只是一個數據庫管理平臺,可以記錄日常的操作記錄,也能實現流程審批等能力。但是它們依舊是一個一個的孤島,無法直接打通開發、DBA之間的部門墻。

那有什么工具可以比它們更好?

也是偶然的機會,發現Bytebase這個項目,它的有點在于可以打通Gitlab->數據庫,這樣開發可以在Gitlab中管理SQL語句,其他的自動交給Bytebase去完成。

 

圖片

 

什么是Bytebase

Bytebase團隊把它定位成面向開發者可靠的數據庫CICD,它不僅僅是數據庫管理工具,更是連接開發和DBA的橋梁。

它到底具有什么樣的能力呢?

  1. SQL審核
  2. SQL糾錯
  3. SQL編輯器
  4. GitOps
  5. 備份恢復
  6. 多租戶管理

安裝部署

說一千,道一萬,不如手中過一遍。

這里,我選擇在Kube.NETes中部署。

(1)首先,部署PG數據庫

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: postgres-pv-claim
  labels:
    App: postgres
spec:
  storageClassName: longhorn
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name:  postgres
  labels:
    app:  postgres
spec:
  selector:
    matchLabels:
      app: postgres
  replicas: 1
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        app:  postgres
    spec:
      containers:
      - name:  postgres
        image:  postgres:15.2
        imagePullPolicy: IfNotPresent
        resources:
          requests:
            cpu: 100m
            memory: 100Mi
          limits:
            cpu: 4
            memory: 8000Mi
        env:
        - name: POSTGRES_PASSword
          value: '123456'
        - name: POSTGRES_USER
          value: 'bytebase'
        - name: POSTGRES_DB
          value: 'postgres'
        - name: PGDATA
          value: /var/lib/postgresql/data/pgdata
        ports:
        - containerPort:  5432
          name:  postgresport
        volumeMounts:
        - name: localtime
          mountPath: /etc/localtime
        - name: data-disk
          mountPath: /var/lib/postgresql/data
      volumes:
        - name: localtime
          hostPath:
            path: /usr/share/zoneinfo/Asia/Shanghai
        - name: data-disk
          persistentVolumeClaim:
            claimName: postgres-pv-claim
---
apiVersion: v1
kind: Service
metadata:
  name: postgres
spec:
  selector:
    app: postgres
  type: NodePort
  ports:
  - name: postgres
    port: 5432
    targetPort:
    protocol: TCP

需要給PG的數據做持久化,不然數據丟失就白忙活一場。

(2)部署Bytebase

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: bytebase-pvc
  labels:
    app: bytebase
spec:
  storageClassName: longhorn
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 50Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: bytebase
spec:
  selector:
    matchLabels:
      app: bytebase
  template:
    metadata:
      labels:
        app: bytebase
    spec:
      containers:
        - name: bytebase
          image: bytebase/bytebase:1.13.0
          imagePullPolicy: IfNotPresent
          env:
          - name: PG_URL
            value: "postgresql://bytebase:123456@postgres:5432/postgres"
          args:
            [
              "--data",
              "/var/opt/bytebase",
              "--external-url",
              "http://bytebase.jokerbai.com",
              "--port",
              "8080",
            ]
          ports:
            - containerPort: 8080
          volumeMounts:
            - name: data
              mountPath: /var/opt/bytebase
          livenessProbe:
            httpGet:
              path: /healthz
              port: 8080
            initialDelaySeconds: 300
            periodSeconds: 300
            timeoutSeconds: 60
      volumes:
      - name: data
        persistentVolumeClaim:
          claimName: bytebase-pvc
---
apiVersion: v1
kind: Service
metadata:
  name: bytebase-entrypoint
spec:
  type: ClusterIP
  selector:
    app: bytebase
  ports:
    - protocol: TCP
      port: 8080
      targetPort: 8080
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: bytebase
spec:
  rules:
  - host: bytebase.jokerbai.com
    http:
      paths:
      - backend:
          serviceName: bytebase-entrypoint
          servicePort: 8080
        path: /

(3)待應用都正常表示部署完成

# kubectl get po -n bytebase
NAME                        READY   STATUS    RESTARTS   AGE
bytebase-5559b7ff97-bmwc6   1/1     Running   0          5h18m
postgres-6989656975-5Glhh   1/1     Running   0          5h20m

 

使用示例

第一次登錄,會要求你創建管理員用戶,按著步驟創建即可。

然后就可以進入如下界面。

 

圖片

 

用戶管理

用戶支持手動管理,也支持集成SSO,這里帶大家集成SSO。

點擊設置->SSO->創建SSO,這里需要非常多的信息。

 

圖片

 

然后我們在Gitlab上去創建應用,填入上面的回調地址,創建應用。

 

圖片

 

 

圖片

 

將生成的ID和Secret填入Bytebase中,修改對應的Gitlab地址即完成配置。

最后,在登錄的時候選擇Gitlab登錄即可。

 

圖片

 

實例管理

在實例中添加數據庫實例即可。

 

圖片

 

這里需要填寫超級管理員的用戶賬戶,在添加實例的時候,會到該實例中創建一個bytebase數據庫,在里面創建一個migration_history表用于記錄所有的操作記錄。

然后,會自動將目標庫中的數據庫同步到bytebase中。

 

圖片

 

數據庫管理

上面已經介紹會自動同步目標數據庫中已有的庫,當然,也可以自己創建數據庫。

 

圖片

 

然后就會自動創建數據庫,過程如下:

 

圖片

 

我們可以對數據庫中的數據進行操作。比如添加一張user表。

點擊數據庫->變更Scheme->選擇剛才創建的joker-test庫。

 

圖片

 

預覽工單即可進入創建頁面。

 

圖片

 

點擊創建,發現SQL審核不通過,如下:

 

圖片

 

就是說我們不允許字段為空,但是又沒有設置默認值。

修改字段如下:

 

圖片

 

現在在SQL審核處雖然還是警告,但是不影響創建。

當然,還可以進行DML操作,比如我們向剛才創建的user表中插入一條name為jackma的數據。

 

圖片

 

項目管理

上面的操作比較分散,在實際中可能會以項目為中心進行管理。

我這里就以環境為中心,首先創建一個TEST項目。

 

圖片

 

進入項目過后,把joker-test數據庫轉移過來。

 

圖片

 

除此之外,還需要把當前項目對應的人添加進來。選擇設置->添加成員即可。

 

圖片

 

然后就可以進行一些變更操作了。

我們還可以為項目添加一些消息通知,可以方便通知到用戶。

 

圖片

 

環境管理

環境表示不同實例所屬的環境,比如開發環境的數據庫,測試環境的數據庫。

這里創建環境除了標識數據庫的歸屬,還可以設置審批策略以及備份策略。

 

圖片

 

最后

上面僅僅是簡單的部署和使用,了解基本的功能。但是目前僅僅停留在數據庫管理上,如何打通Gitlab和Bytebase,本篇文章還沒有實踐,下篇文章補上。

分享到:
標簽:SQL
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定