暂无图片
暂无图片
5
暂无图片
暂无图片
6
暂无图片

OceanBase2.2集群之docker部署

原创 gelyon 2020-08-13
5506

一步一步学习OceanBase系列 本篇是oceanbase2.2版本实操第四篇 oceanbase2.2之docker部署。
oceanbase2.2版本实操第一篇:OceanBase 2.2集群初体验——手动安装ob2.2集群
oceanbase2.2版本实操第二篇:OceanBase2.2集群——MySQL租户的使用体验
oceanbase2.2版本实操第三篇:OceanBase2.2集群——oracle租户的使用体验

本系列总的专栏:一步一步学习OceanBase系列


对于官网发布的oceanbase2.2试用版本来说,大家碰到最大的问题就是说,哎怎么资源要求那么高啊。。最低内存要求64G,对于很多人来说都没发练手。。。

但是,但是。。。。。

福音来了。。。

docker镜像最小化安装,只要8g内存即可,本人亲自尝试,成功。

说明:

本文应该是全网第一,目前官方还未发布,不知道会不会有版权纠纷,因此镜像地址先省略给个错误地址,以免版权纠纷,待官网文章先出来后再发正确镜像地址,抱歉~

以下开始介绍oceanbase2.2之docker部署。


OceanBase2.2集群之docker部署

1、安装docker软件
# yum install docker
# 
# docker -v
Docker version 1.13.1, build 64e9980/1.13.1
#

2、把oceanbase的docker镜像地址注册到daemon.json配置文件里
# cat /etc/docker/daemon.json
{"registry-mirrors": ["https://a38jgh907k.mirror.aliyuncs.com"]}


3、启动docker服务
# 
# systemctl start docker
# 

4、搜索oceanbase镜像
# 
# docker search oceanbase
INDEX       NAME                               DESCRIPTION                              STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/oceanbase/oceanbase-xe   OceanBase Database 2.2 Express Edition   1                    
# 

5、拉取oceanbase docker 镜像
# docker pull docker.io/oceanbase/oceanbase-xe
Using default tag: latest
Trying to pull repository docker.io/oceanbase/oceanbase-xe ... 
latest: Pulling from docker.io/oceanbase/oceanbase-xe
524b0c1e57f8: Pull complete 
f8970ac64a1e: Pull complete 
56667d01fa24: Pull complete 
a7b2d58826cb: Pull complete 
d201d383ba65: Pull complete 
Digest: sha256:647d79fed9f77ead671c632b860f6a99fc98ea339c9679b015d31cc03ba66f6e
Status: Downloaded newer image for docker.io/oceanbase/oceanbase-xe:latest
#

6、查看镜像
# docker images
REPOSITORY                         TAG                 IMAGE ID            CREATED             SIZE
docker.io/oceanbase/oceanbase-xe   latest              9a433ea69f0a        5 days ago          501 MB
#
# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
# 

7、启动容器
# docker run -d -it --memory 8g --name oceanbase2.2 docker.io/oceanbase/oceanbase-xe:latest
0d7dc1355586b508b47d29f9a21d5e4279188021b19bfe7cf1d2309eaad89a1c
#
# docker ps -a
CONTAINER ID        IMAGE                                     COMMAND             CREATED             STATUS              PORTS               NAMES
0d7dc1355586        docker.io/oceanbase/oceanbase-xe:latest   "bash"              28 seconds ago      Up 28 seconds                           oceanbase2.2
#

8、进入容器,初始化oceanbase集群
docker exec -it oceanbase2.2 /bin/bash 
./hap.py ob1.reboot

如下示例:
#
# docker exec -it oceanbase2.2 /bin/bash
[admin@92edc19bae0f deploy]$ ll
total 3792
-rw-r--r-- 1 admin root     560 Jul 28 03:46 Makefile
-rw-r--r-- 1 admin root     968 Jul 28 06:31 README.md
drwxr-xr-x 2 admin root    4096 Jul 28 06:30 b
drwxr-xr-x 2 admin root    4096 Jul 28 07:39 bin
-rw-r--r-- 1 admin root     501 Aug  7 08:42 config.py
-rw-r--r-- 1 admin root     305 Jul 28 03:12 deploy.dockerfile
drwxr-xr-x 2 admin root    4096 Aug  7 09:04 h
-rwxr-xr-x 1 admin root  276599 Jul 28 08:32 hap.py
-rw-r--r-- 1 admin root    2835 Jul 28 07:32 init.sql
-rw-r--r-- 1 admin root     295 Jul 27 12:05 init_user.sql
-rw-r--r-- 1 admin root     342 Jul 27 12:05 init_user_oracle.sql
drwxr-xr-x 2 admin root    4096 Aug  7 09:01 install
drwxr-xr-x 2 admin root    4096 Jul 27 12:05 lib
-rwxr-xr-x 1 admin root 3539416 Feb 10  2020 mysql
drwxr-xr-x 2 admin root    4096 Jul 28 06:47 mysql_example
drwxr-xr-x 2 admin root    4096 Jul 27 12:05 oracle_example
drwxr-xr-x 4 admin root    4096 Jul 27 12:05 sysbench
[admin@92edc19bae0f deploy]$ 
[admin@92edc19bae0f deploy]$ 
[admin@92edc19bae0f deploy]$ ./hap.py ob1.reboot
2020-08-13 05:52:21.652154 call.py:3 CALL: top make_local_etc_dir
2020-08-13 05:52:21.664867 call.py:3 CALL: top ob1.reboot
2020-08-13 05:52:21.667497 call.py:3 CALL: top.ob1 local_reboot
2020-08-13 05:52:21.671276 call.py:3 CALL: top.ob1 force_stop
2020-08-13 05:52:21.675380 call.py:3 CALL: top.ob1 stop
2020-08-13 05:52:21.680301 call.py:3 CALL: top.ob1 all_server
2020-08-13 05:52:21.686977 call.py:3 CALL: top.ob1.obs0 stop
2020-08-13 05:52:21.693242 magic_ctrl.py:3 retry_loop: retryloop: timeout=10 interval = 0.1
2020-08-13 05:52:21.700184 magic_ctrl.py:6 retry_loop: #### tryloop try_stop ####
2020-08-13 05:52:21.707272 call.py:3 CALL: top.ob1.obs0 try_stop
2020-08-13 05:52:21.747710 magic_ctrl.py:9 retry_loop: #### tryloop success ####
2020-08-13 05:52:21.754876 call.py:3 CALL: top.ob1 sleep
2020-08-13 05:52:21.758931 misc-deps.py:34 sleep: sleep 3
2020-08-13 05:52:24.766683 call.py:3 CALL: top.ob1 cleanup
2020-08-13 05:52:24.770998 call.py:3 CALL: top.ob1 all_server
2020-08-13 05:52:24.776896 call.py:3 CALL: top.ob1.obs0 rmdir
2020-08-13 05:52:24.788185 call.py:3 CALL: top.ob1 mk_local_dir
2020-08-13 05:52:24.795014 call.py:3 CALL: top.ob1 mkdir
2020-08-13 05:52:24.799357 call.py:3 CALL: top.ob1 all_server
2020-08-13 05:52:24.805191 call.py:3 CALL: top.ob1.obs0 mkdir
2020-08-13 05:52:24.825458 call.py:3 CALL: top.ob1 local_sync
2020-08-13 05:52:24.829873 call.py:3 CALL: top.ob1 all_server
2020-08-13 05:52:24.835640 call.py:3 CALL: top.ob1.obs0 local_sync
2020-08-13 05:52:25.175128 call.py:3 CALL: top.ob1 prepare_proxy_cfg
2020-08-13 05:52:25.179658 call.py:3 CALL: top.ob1 start_servers
2020-08-13 05:52:25.183972 call.py:3 CALL: top.ob1 all_observer
2020-08-13 05:52:25.189885 call.py:3 CALL: top.ob1.obs0 start
/home/admin/oceanbase/bin/observer -P 2882 -p 2881 -z test -n ob1.admin -c 1 -d /home/admin/oceanbase/store -l INFO -i lo -r 127.0.0.1:2882:2881 -o memory_limit=8G,cache_wash_threshold=1G,row_purge_thread_count
=1,net_thread_count=1,enable_syslog_recycle=True,enable_merge_by_turn=FALSE,cpu_count=16,location_refresh_thread_count=2,max_syslog_file_count=3,major_freeze_duty_time=Disable,__easy_memory_limit=1G,schema_history_expire_time=1d,merge_thread_count=1,writing_throttling_trigger_percentage=70,_max_trx_size=2M,workers_per_cpu_quota=2,enable_separate_sys_clog=0,datafile_disk_percentage=50,__min_full_resource_pool_memory=536870912,system_memory=5G,memory_chunk_cache_size=128M,trace_log_slow_query_watermark=10s,writing_throttling_maximum_duration=1m,switchover_process_thread_count=1,datafile_size=10G,minor_freeze_times=500,stack_size=1536K,disk_io_thread_coun=1rpc port: 2882
mysql port: 2881
zone: test
appname: ob1.admin
cluster id: 1
data_dir: /home/admin/oceanbase/store
log level: INFO
devname: lo
rs list: 127.0.0.1:2882:2881
optstr: memory_limit=8G,cache_wash_threshold=1G,row_purge_thread_count=1,net_thread_count=1,enable_syslog_recycle=True,enable_merge_by_turn=FALSE,cpu_count=16,location_refresh_thread_count=2,max_syslog_file_cou
nt=3,major_freeze_duty_time=Disable,__easy_memory_limit=1G,schema_history_expire_time=1d,merge_thread_count=1,writing_throttling_trigger_percentage=70,_max_trx_size=2M,workers_per_cpu_quota=2,enable_separate_sys_clog=0,datafile_disk_percentage=50,__min_full_resource_pool_memory=536870912,system_memory=5G,memory_chunk_cache_size=128M,trace_log_slow_query_watermark=10s,writing_throttling_maximum_duration=1m,switchover_process_thread_count=1,datafile_size=10G,minor_freeze_times=500,stack_size=1536K,disk_io_thread_coun=1[2020-08-13 05:52:25.250145] ERROR [LIB] pidfile_test (utility.cpp:1168) [64][0][Y0-0000000000000000] [lt=0] fid file doesn't exist(pidfile="run/observer.pid") BACKTRACE:0x80778ca 0x801e5c6 0x4628e5 0x46ec098 0
x807b37c 0x4844719 0x7f752d93c555 0x48a33052020-08-13 05:52:25.252355 call.py:3 CALL: top.ob1 bootstrap
2020-08-13 05:52:25.257049 magic_ctrl.py:3 retry_loop: retryloop: timeout=864000 interval = 1
2020-08-13 05:52:25.262071 magic_ctrl.py:6 retry_loop: #### tryloop obs0.bootstrap ####
2020-08-13 05:52:25.267140 call.py:3 CALL: top.ob1 obs0.bootstrap
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)
2020-08-13 05:52:25.279927 magic_ctrl.py:12 retry_loop: tryloop fail: Fail: shell fail: ./mysql --prompt "OceanBase(\u@\d)>" -h 127.0.0.1 -P 2881 -uroot  input="alter system bootstrap  REGION 'sys_region' ZONE 
'test' SERVER '127.0.0.1:2882'; # ExceptionOnFail DiscardXOutput" ret=1 2020-08-13 05:52:26.286069 magic_ctrl.py:6 retry_loop: #### tryloop obs0.bootstrap ####
2020-08-13 05:52:26.291350 call.py:3 CALL: top.ob1 obs0.bootstrap
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)
2020-08-13 05:52:26.312842 magic_ctrl.py:12 retry_loop: tryloop fail: Fail: shell fail: ./mysql --prompt "OceanBase(\u@\d)>" -h 127.0.0.1 -P 2881 -uroot  input="alter system bootstrap  REGION 'sys_region' ZONE 
'test' SERVER '127.0.0.1:2882'; # ExceptionOnFail DiscardXOutput" ret=1 2020-08-13 05:52:27.320089 magic_ctrl.py:6 retry_loop: #### tryloop obs0.bootstrap ####
2020-08-13 05:52:27.325517 call.py:3 CALL: top.ob1 obs0.bootstrap
2020-08-13 05:52:52.356440 magic_ctrl.py:9 retry_loop: #### tryloop success ####
2020-08-13 05:52:52.362698 call.py:3 CALL: top.ob1 post_bootstrap
2020-08-13 05:52:52.371857 call.py:3 CALL: top.ob1 wait_service
2020-08-13 05:52:52.376838 magic_ctrl.py:3 retry_loop: retryloop: timeout=864000 interval = 1
2020-08-13 05:52:52.382604 magic_ctrl.py:6 retry_loop: #### tryloop obs0.wait_service ####
2020-08-13 05:52:52.390454 call.py:3 CALL: top.ob1 obs0.wait_service
2020-08-13 05:52:52.453720 magic_ctrl.py:9 retry_loop: #### tryloop success ####
2020-08-13 05:52:52.462873 call.py:3 CALL: top.ob1 exec_init_sql
2020-08-13 05:52:52.473108 call.py:3 CALL: top.ob1 obs0.sql
2020-08-13 05:53:06.079432 call.py:3 CALL: top.ob1 add_server
2020-08-13 05:53:06.085145 call.py:3 CALL: top.ob1 all_obs
2020-08-13 05:53:06.095526 call.py:3 CALL: top.ob1 exec_init_user_sql1
2020-08-13 05:53:06.101242 call.py:3 CALL: top.ob1 exec_init_user_sql2
2020-08-13 05:53:06.109572 call.py:3 CALL: top.ob1 obs0.mysql
2020-08-13 05:53:06.499668 call.py:3 CALL: top.ob1 start_proxy
2020-08-13 05:53:06.505604 call.py:3 CALL: top.ob1 all_proxy
2020-08-13 05:53:06.518409 call.py:3 CALL: top.ob1 check_bootstrap
2020-08-13 05:53:06.523533 call.py:3 CALL: top.ob1 obs0.check_bootstrap
[('force_stop', [('obs0.stop', 'succ')]),
 ('sleep', None),
 ('cleanup', [('obs0.rmdir', 0)]),
 ('mk_local_dir', 0),
 ('mkdir', [('obs0.mkdir', 0)]),
 ('local_sync', [('obs0.local_sync', 0)]),
 ('prepare_proxy_cfg', 'skip'),
 ('start_servers', [('obs0.start', 0)]),
 ('bootstrap', 'succ'),
 ('post_bootstrap', None),
 ('wait_service', 'succ'),
 ('exec_init_sql', 0),
 ('add_server', []),
 ('exec_init_user_sql1', 'skip'),
 ('exec_init_user_sql2', 0),
 ('start_proxy', []),
 ('check_bootstrap', 0)]
[admin@92edc19bae0f deploy]$ 

这里要注意:不要以为看到上面有报错fail: Fail: shell fail:就以为初始化出错了,直接Ctrl+C停掉。
其实是没问题的,本人刚开始也以为出错了,导致试验了好几盘。。误报、、、
以上最后输出结果('bootstrap', 'succ')表示oceanbase2.2初始化成功。

以下开始真正体验咯!~~
[admin@cde0099d0b4f deploy]$ ps -ef|grep observer
admin       46     1 92 05:36 ?        00:02:39 /home/admin/oceanbase/bin/observer -P 2882 -p 2881 -z test -n ob1.admin -c 1 -d /home/admin/oceanbase/store -l INFO -i lo -r 127.0.0.1:2882:2881 -o memory_limit=8
G,cache_wash_threshold=1G,row_purge_thread_count=1,net_thread_count=1,enable_syslog_recycle=True,enable_merge_by_turn=FALSE,cpu_count=16,location_refresh_thread_count=2,max_syslog_file_count=3,major_freeze_duty_time=Disable,__easy_memory_limit=1G,schema_history_expire_time=1d,merge_thread_count=1,writing_throttling_trigger_percentage=70,_max_trx_size=2M,workers_per_cpu_quota=2,enable_separate_sys_clog=0,datafile_disk_percentage=50,__min_full_resource_pool_memory=536870912,system_memory=5G,memory_chunk_cache_size=128M,trace_log_slow_query_watermark=10s,writing_throttling_maximum_duration=1m,switchover_process_thread_count=1,datafile_size=10G,minor_freeze_times=500,stack_size=1536K,disk_io_thread_coun=1admin      513     1  0 05:39 ?        00:00:00 grep --color=auto observer
[admin@cde0099d0b4f deploy]$
[admin@92edc19bae0f deploy]$ ./mysql -h127.1 -uroot@sys -P2881 -p -c -A
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 3221488082
Server version: 5.7.25 OceanBase 2.2.50 (r1-496bca53ce3a5b1634de75970706e3d554b88e97) (Built Mar 16 2020 10:24:41)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> select version();
+-----------+
| version() |
+-----------+
| 2.2.50    |
+-----------+
1 row in set (0.00 sec)

MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| oceanbase          |
| information_schema |
| mysql              |
| SYS                |
| LBACSYS            |
| ORAAUDITOR         |
| test               |
+--------------------+
7 rows in set (0.00 sec)

MySQL [(none)]> 
MySQL [(none)]> use oceanbase
Database changed
MySQL [oceanbase]> 
MySQL [oceanbase]> select zone,svr_ip,svr_port,inner_port,with_rootserver,status,gmt_create from __all_server order by zone, svr_ip;
+------+-----------+----------+------------+-----------------+--------+----------------------------+
| zone | svr_ip    | svr_port | inner_port | with_rootserver | status | gmt_create                 |
+------+-----------+----------+------------+-----------------+--------+----------------------------+
| test | 127.0.0.1 |     2882 |       2881 |               1 | active | 2020-08-13 13:37:12.135559 |
+------+-----------+----------+------------+-----------------+--------+----------------------------+
1 row in set (0.01 sec)

MySQL [oceanbase]> select tenant_id, tenant_name, compatibility_mode,zone_list, locality ,gmt_modified from __all_tenant;
+-----------+-------------+--------------------+-----------+--------------+----------------------------+
| tenant_id | tenant_name | compatibility_mode | zone_list | locality     | gmt_modified               |
+-----------+-------------+--------------------+-----------+--------------+----------------------------+
|         1 | sys         |                  0 | test      | FULL{1}@test | 2020-08-13 13:37:25.115805 |
|      1001 | oracle      |                  1 | test      | FULL{1}@test | 2020-08-13 13:37:49.537085 |
|      1002 | mysql       |                  0 | test      | FULL{1}@test | 2020-08-13 13:37:49.496239 |
+-----------+-------------+--------------------+-----------+--------------+----------------------------+
3 rows in set (0.00 sec)

MySQL [oceanbase]> select zone, svr_ip, svr_port,inner_port, cpu_total, cpu_assigned, 
    -> round(mem_total/1024/1024/1024) mem_total_gb, 
    -> round(mem_assigned/1024/1024/1024) mem_ass_gb, 
    -> round(disk_total/1024/1024/1024) disk_total_gb, 
    -> unit_num, substr(build_version,1,6) version
    -> from __all_virtual_server_stat
    -> order by zone, svr_ip, inner_port;
+------+-----------+----------+------------+-----------+--------------+--------------+------------+---------------+----------+---------+
| zone | svr_ip    | svr_port | inner_port | cpu_total | cpu_assigned | mem_total_gb | mem_ass_gb | disk_total_gb | unit_num | version |
+------+-----------+----------+------------+-----------+--------------+--------------+------------+---------------+----------+---------+
| test | 127.0.0.1 |     2882 |       2881 |        14 |          4.5 |            3 |          3 |            10 |        3 | 2.2.50  |
+------+-----------+----------+------------+-----------+--------------+--------------+------------+---------------+----------+---------+
1 row in set (0.01 sec)

MySQL [oceanbase]> select a.zone,concat(a.svr_ip,':',a.svr_port) observer, cpu_total, (cpu_total-cpu_assigned) cpu_free, 
    -> round(mem_total/1024/1024/1024) mem_total_gb, round((mem_total-mem_assigned)/1024/1024/1024) mem_free_gb, 
    -> round(disk_total/1024/1024/1024) disk_total_gb,
    -> substr(a.build_version,1,6) version,usec_to_time(b.start_service_time) start_service_time
    -> from __all_virtual_server_stat a join __all_server b on (a.svr_ip=b.svr_ip and a.svr_port=b.svr_port)
    -> order by a.zone, a.svr_ip;
+------+----------------+-----------+----------+--------------+-------------+---------------+---------+----------------------------+
| zone | observer       | cpu_total | cpu_free | mem_total_gb | mem_free_gb | disk_total_gb | version | start_service_time         |
+------+----------------+-----------+----------+--------------+-------------+---------------+---------+----------------------------+
| test | 127.0.0.1:2882 |        14 |      9.5 |            3 |           0 |            10 | 2.2.50  | 2020-08-13 13:37:27.168496 |
+------+----------------+-----------+----------+--------------+-------------+---------------+---------+----------------------------+
1 row in set (0.01 sec)

MySQL [oceanbase]> select t1.name resource_pool_name, t2.`name` unit_config_name, t2.max_cpu, t2.min_cpu, 
    -> round(t2.max_memory/1024/1024/1024) max_mem_gb, round(t2.min_memory/1024/1024/1024) min_mem_gb, 
    -> t3.unit_id, t3.zone, concat(t3.svr_ip,':',t3.`svr_port`) observer,t4.tenant_id, t4.tenant_name
    -> from __all_resource_pool t1 join __all_unit_config t2 on (t1.unit_config_id=t2.unit_config_id)
    ->     join __all_unit t3 on (t1.`resource_pool_id` = t3.`resource_pool_id`)
    ->     left join __all_tenant t4 on (t1.tenant_id=t4.tenant_id)
    -> order by t1.`resource_pool_id`, t2.`unit_config_id`, t3.unit_id
    -> ;
+--------------------+------------------+---------+---------+------------+------------+---------+------+----------------+-----------+-------------+
| resource_pool_name | unit_config_name | max_cpu | min_cpu | max_mem_gb | min_mem_gb | unit_id | zone | observer       | tenant_id | tenant_name |
+--------------------+------------------+---------+---------+------------+------------+---------+------+----------------+-----------+-------------+
| sys_pool           | sys_unit_config  |       5 |     2.5 |          1 |          1 |       1 | test | 127.0.0.1:2882 |         1 | sys         |
| pool1              | box1             |       2 |       1 |          1 |          1 |    1001 | test | 127.0.0.1:2882 |      1001 | oracle      |
| pool2              | box1             |       2 |       1 |          1 |          1 |    1002 | test | 127.0.0.1:2882 |      1002 | mysql       |
+--------------------+------------------+---------+---------+------------+------------+---------+------+----------------+-----------+-------------+
3 rows in set (0.00 sec)

MySQL [oceanbase]> select unit_config_id,name,max_cpu,min_cpu,round(max_memory/1024/1024/1024) max_mem_gb, 
    -> round(min_memory/1024/1024/1024) min_mem_gb, round(max_disk_size/1024/1024/1024) max_disk_size_gb
    -> from __all_unit_config
    -> order by unit_config_id;
+----------------+-----------------+---------+---------+------------+------------+------------------+
| unit_config_id | name            | max_cpu | min_cpu | max_mem_gb | min_mem_gb | max_disk_size_gb |
+----------------+-----------------+---------+---------+------------+------------+------------------+
|              1 | sys_unit_config |       5 |     2.5 |          1 |          1 |               10 |
|           1001 | box1            |       2 |       1 |          1 |          1 |                5 |
+----------------+-----------------+---------+---------+------------+------------+------------------+
2 rows in set (0.01 sec)

MySQL [oceanbase]> 


从上可以看出,docker版的oceanbase版本是2.2.50,单机节点,只有一个zone,除了sys租户外,还自带了mysql、oracle两个租户,供大家体验2.x版本的mysql和oracle租户。

对广大OceanBase学习者来说,实在是福音啊。。。点个赞!

一步一步学习OceanBase系列

下次实操继续更新~~~


复制
最后修改时间:2020-08-19 09:41:03
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
2人已赞赏
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论

Zixin Huo
暂无图片
1年前
评论
暂无图片 0
向大佬学习:【本文应该是全网第一,目前官方还未发布,不知道会不会有版权纠纷,因此镜像地址先省略给个错误地址,以免版权纠纷,待官网文章先出来后再发正确镜像地址】,现在镜像地址更新了吗?
1年前
暂无图片 点赞
评论
有教无类
暂无图片
3年前
评论
暂无图片 0
docker里的oracle租户怎么用
3年前
暂无图片 点赞
评论
清秋
暂无图片
4年前
评论
暂无图片 0
数据库密码是自己设置的?
4年前
暂无图片 点赞
1
gelyon
暂无图片
4年前
回复
暂无图片 0
初始root密码是空
4年前
暂无图片 点赞
回复
姜殿斌
暂无图片
4年前
评论
暂无图片 0
好文档,好文档,跟着大师学习。
4年前
暂无图片 点赞
1
gelyon
暂无图片
4年前
回复
暂无图片 0
姜sir谦虚了
4年前
暂无图片 点赞
回复