暂无图片
暂无图片
7
暂无图片
暂无图片
暂无图片

YashanDB常见问题处理-P1

原创 Skye 2023-10-24
691

前言

根据YashanDB官方文档所述,语法上基本兼容Oracle,所以,理论上来讲,当我们在使用YashanDB遇到不确定的语法使用时,可以使用Oracle运维经验去尝试。

image.png

当然,如果失败,也别烦恼,请给国产数据库一点时间孕育~

对了,标题为什么跟了P1,是因为鄙人认为,随着遇到的问题持续增加,可能会有P2、P3乃至Pn。问题不大。

以下是一些在使用YashanDB中,常见的问题,仅供参考。

Q1:哪些参数需要重启生效,哪些参数设置不需要重启生效?

在使用YashanDB时,官方不推荐直接修改配置文件yasdb.ini,往往是通过alter system set语句来修改参数的。那么参数这么多,哪些需要重启而哪些又不需要重启呢?

从语法形式上判别:

alter system set parameter_name=parameter_value ; -- 这类参数会立即生效,不需要重启数据库,重启完数据库也会持续生效,等同于scope=both alter system set parameter_name=parameter_value scope=both; -- 这类参数会立即生效,不需要重启数据库,重启完数据库也会持续生效 alter system set parameter_name=parameter_value scope=memory; -- 这类参数会立即生效,不需要重启数据库,但是重启完数据库又会失效(回到修改前的状态) alter system set parameter_name=parameter_value scope=spfile; -- 这类参数只写入到配置文件,不会修改当前配置,所以这类参数需要重启生效。

image.png

对于某些参数,它可能只支持重启生效,此类参数设置必须指定scope=spfile
image.png
对于有些参数,它可能同时支持重启生效,或者立即生效
image.png
而对于某些参数,在建库时就得决策好,后面是无法修改的,比如DB_BLOCK_SIZE、字符集等。

建议学习的过程中,请一切以YashanDB官方手册为准!

参考官方参数配置:参数配置
参考官方参数项:参数项

Q2:用户密码含有特殊字符如何在yasql客户端登录

yasql sys/yasdb_123@127.0.0.1:1688/yasdb

这是一个完整的yasql登录语法,但是我们经常会省略部分信息,比如直接使用yasql sys/yasdb_123登录当前环境的YashanDB。

那么问题来了,如果密码为Code@1234怎么办,直接使用yasql sys/Code@1234能否登录呢?实验室检验真理的唯一标准。

[yashan@yashandb ~]$ yasql sys/yasdb_123 YashanDB SQL Release 22.2.4.0 x86_64 Connected to: YashanDB Server Release 22.2.4.0 x86_64 - X86 64bit Linux SQL> alter user sys identified by Code@123; #修改sys用户密码 Succeed. SQL> exit [yashan@yashandb ~]$ yasql sys/yasdb_123 #密码已经修改,得使用新密码 YashanDB SQL Release 22.2.4.0 x86_64 YAS-02143 invalid username/password, login denied please input user name: YASQL-00007 invalid username/password; logon denied please input user name: YASQL-00007 invalid username/password; logon denied YASQL-00007 unable to CONNECT to Server after 3 attempts [yashan@yashandb ~]$ yasql sys/Code@123 #直接登录报错 YashanDB SQL Release 22.2.4.0 x86_64 YAS-08003 invalid name or URL of service please input user name: YASQL-00007 invalid username/password; logon denied please input user name: YASQL-00007 invalid username/password; logon denied YASQL-00007 unable to CONNECT to Server after 3 attempts [yashan@yashandb ~]$ yasql sys/\"Code@123\" #需要使用转义符 \"密码\" 包裹密码字符串完成转义 YashanDB SQL Release 22.2.4.0 x86_64 Connected to: YashanDB Server Release 22.2.4.0 x86_64 - X86 64bit Linux SQL> exit

完美~

Q3:其他会话看不到另外一个会话的数据修改

这个问题跟事务隔离级别有关。

据了解,YashanDB默认使用读已提交(READ COMMITTED)的隔离级别,因此,在一个会话内,修改数据后,要执行 commit; 语句进行事务提交后,其他会话才可以看到这个会话所做的修改。

当然也可以设置别的隔离级别,不同的隔离级别带来不同的事务现象。

可参考官方说明:隔离等级

Q4:执行sql文件

作为一个运维老手,运维动作能做到越快越准越好。

所以,想批量执行SQL语句,别再一条条,或者多条条复制粘贴了,直接放在文本里,一把梭哈。梭哈也有两种常见方式

Plan A

举个栗子

yasql sys/yasdb_123 -f -e 123.sql

使用yasql直接将123.sql导入执行,意思就是说,我们可以直接在外部使用yasql 通过-e参数,批量执行sql脚本。

[yashan@yashandb ~]$ yasql sys/\"Code@123\" -f -e 123.sql SQL> select * from v$instance; STATUS VERSION STARTUP_TIME HOST_NAME DATA_HOME --------- ------------------------- ------------------------------ -------------- ------------------------------------ OPEN Release 22.2.4.0 x86_64 2023-10-17 16:57:07.186461 yashandb /home/yashan/yashandb/yasdb_data 1 row fetched. SQL> [yashan@yashandb ~]$ cat 123.sql select * from v$instance;

Plan B

再举个栗子

[yashan@yashandb ~]$ yasql sys/\"Code@123\" YashanDB SQL Release 22.2.4.0 x86_64 Connected to: YashanDB Server Release 22.2.4.0 x86_64 - X86 64bit Linux SQL> @/home/yashan/123.sql #绝对路径 STATUS VERSION STARTUP_TIME HOST_NAME DATA_HOME --------- ------------------------- ------------------------------ -------------- ------------------------------------ OPEN Release 22.2.4.0 x86_64 2023-10-17 16:57:07.186461 yashandb /home/yashan/yashandb/yasdb_data 1 row fetched. SQL> @123.sql #相对路径 STATUS VERSION STARTUP_TIME HOST_NAME DATA_HOME --------- ------------------------- ------------------------------ -------------- ------------------------------------ OPEN Release 22.2.4.0 x86_64 2023-10-17 16:57:07.186461 yashandb /home/yashan/yashandb/yasdb_data 1 row fetched.

直接登录到sql命令窗口,通过@sql文件名即可(建议使用绝对路径)

至此,各位同学,学废了吗~

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

评论