Oracle Cloud 系列文章02:创建Oracle云数据库(ATP)

本文是钢哥 Oracle Cloud 系列文章第二篇,Oracle Cloud系列文章列表如下:
创建 Oracle 云数据库,并启用 Oracle APEX
登录 Oracle Cloud 后,选择“创建数据库”

按照页面上的要求填写必要的信息,可以根据需要选择是创建数据仓库还是**自治事务处理(ATP)**数据库,我们这里选择后者,因为后面要使用 Oracle APEX。
需要注意的是,如果希望免费使用,需要勾选“免费使用”的选项,否则过了30天可是要收费了。
其他默认,点击页面下方的“创建自治数据库”按钮即可。

稍后片刻,Oracle 就为我们创建好云数据库了。

Oracle Cloud 系列文章01:创建VM云实例

本文是钢哥 Oracle Cloud 系列文章第一篇,Oracle Cloud系列文章列表如下:
背景
钢哥注:Larry 在重新掌舵 Oracle 后,在今年的 Oracle Open World 上放了大招儿。任何人都可以 无限期免费 使用 Oracle Cloud 入门级基础功能,包括虚拟机、自治数据库、块存储以及负载均衡等。这对于我们这些穷人而言简直是一大福音啊!废话不多说,赶紧跟着钢哥去(hao)体(yang)验(mao) Oracle Cloud 的魅力吧!
注册 Oracle Cloud 账号
填写邮箱及所在地
首先注册个Oracle Cloud账号,地址:https://oracle.com/oow19freetier。
如果之前注册过Oracle Cloud,可以直接登录,一样可以享受终身免费待遇。
填写邮箱,选择所在国家。

注册Home Region及个人手机号
这个页面信息比较多,特别是
Home Region栏位,这个是你今后服务器所在的区,一旦注册成功是不能改的,所以请谨慎选择。为了速度能快一点儿,建议选择亚洲的几个区,钢哥选的是日本东京。
最后输入自己的手机号,接收个验证码。

注册信用卡
之后需要填写
信用卡信息,以便做扣款(1美金)验证,扣的钱稍后会自动退回,所以不用担心。支持的信用卡有VISA、Master、Google Pay。
Oracle提供始终免费的自治数据库和云基础架构
新的 Always Free 服务使开发人员和学生能够无限时间学习,构建和获得 Oracle 云的实践经验
甲骨文今天宣布推出 Oracle云免费套餐,包括新的免费服务,任何人都可以无限时间尝试世界上第一个自动驾驶数据库和Oracle云基础架构。现在,大型和小型组织,开发人员,学生和教育工作者可以构建,学习和探索Oracle自治数据库和Oracle云基础架构的全部功能,包括计算虚拟机,块和对象存储以及负载均衡器 - 所有必需品开发人员在 Oracle Cloud 上构建完整的应用程序。
虽然其他超大规模云供应商提供了一个为期12个月的关系数据库免费试用版,然后开始收费,但Oracle的 Always Free Autonomous Database 只要使用它就可以免费使用。与竞争对手的免费试用相比,Oracle还提供更多计算和存储作为Always Free服务。用户可以轻松升级以获得更多实例,更大的实例和其他服务。始终免费服务在世界所有地区都可用,任何人都可以使用,包括那些使用通用信用卡定价和新免费套餐帐户的付费帐户。
“我们很高兴能够提供始终免费的Oracle自治数据库和Oracle云基础架构,”Oracle数据库服务器技术执行副总裁 Andrew Mendelsohn 说。“这使下一代开发人员,分析师和数据科学家能够学习最新的数据库和机器学习技术,以便在云上开发强大的数据驱动应用程序和分析。”
Oracle APEX 19.2 早期采用者版本现已推出!

Oracle APEX 19.2的早期采用者版本现已推出,并且向所有人开放!访问它的URL是:
在 Oracle APEX 的每个主要版本之前,我们都会执行托管的早期采用者(EA)计划。这类似于托管测试版,欢迎大家参与并提供反馈。这是社区参与 APEX 发布过程的绝佳机会。我们欢迎您提供有关功能、用户界面、错误、功能等的反馈。最终,您的反馈有助于我们将 Oracle APEX 打造成一个高质量、优质的框架。
此版本中有一些令人兴奋的新功能,包括:
- 分面搜索(Faceted Search)
- 全新的团队开发功能
- 增强弹出LOV
- 扩展共享LOV
- REST 支持交互式网格(REST Enabled Interactive Grid)
- 数据加载到现有表中
- 升级的 Oracle JET
- 环球主题中的暗模式主题风格
- 了解有关 APEX 19.2 中新功能的更多信息
与往常一样,要记住以下几点:
这只是托管。我们不提供 APEX 的早期版本可用于本地安装。
您在 APEX 的早期采用者实例上所做的一切都应该被视为丢失。无法保证您在 Early Adopter 实例中构建的APEX应用程序甚至可以安装在 Oracle Application Express 19.2 的生产版本中。
如果您在 APEX 19.2 发布后阅读此博文,您会发现 https://tryapexnow.com/ 上的早期采用者不再可用。
Oracle APEX 活跃博文整理 | 2019.09.09

以下是截止至 2019.09.09收集的 Oracle APEX 最新博文,完整博文列表请移步这里:Oracle APEX Evangelion(EVA 补完计划)
常规APEX博文整理:
- Paste from clipboard in Oracle APEX
2019.09 - Speeding up APEX Static Application and Workspace Files
2019.07 - Bootstrap Progress Bar in your Oracle APEX application
2019.07 - Sample Data Sets in APEX
2019.05 - Page Specific Utilities
2019.05 - Drool-worthy APEX Cards with Images and Buttons
2019.03 - Flexible Oracle APEX Wizard Navigation
2019.02 - My APEX House of Cards – Custom Grouped Card Report Template
2019.02 - Read-Write APEX application fully based on alien data or is it mandatory to use exactly Oracle Database?
2018.11 - The Oracle APEX Reverse Proxy Guide using NGINX
2018.10 - Announcing Oracle APEX Static Resources on Content Delivery Network
2018.10 - Oracle APEX and ORDS deployments automation
2018.10 - PLEX - PL/SQL Export Utilities
2018.08 - XLSX upload made easy: A simple XLSX parser
2018.08 - Hide certain objects on an APEX page
2018.07 - Exporting APEX Application in SQLcl with Build Status Override
2018.07 - Copy and Paste to clipboard
2018.07 - Set APEX application name for Dev, Test and Prod environment in the same database
2018.07 - How to Export to Excel and Print to PDF in Oracle APEX? The answer…
2018.06 - Safely Upgrading to Oracle APEX 18.1
2018.05 - My top 3 to gather user feedback in an Oracle APEX app
2018.03 - Datepicker Customization
2018.03 - Webserver Logfile Analysis with Oracle APEX
2018.01 - Use Font APEX and Font Awesome Simultaneously
2018.01 - Blockchain with Oracle and APEX
2017.10
Linux shell 学习笔记

本文转自 https://www.cnblogs.com/binbinjx/p/5680214.html
配置文件init.properties
1 | ID=123 |
方法一,利用sed解析文本,提取配置信息
1 | id=`sed '/^ID=/!d;s/.*=//' init.properties` |
方法二,利用eval方法解析
1 | while read line;do |
方法三,直接将配置信息加载到session的环境变量中
1 | source init.properties |
参数判断
1 | if [ "$1" = "Y" ]; then |
获取本机IP
1 | ip a | grep inet | grep -v inet6 | grep -v 127 | sed 's/^[ \t]*//g' | cut -d ' ' -f2 |
获取 10+ 参数值
在Shell脚本中,可以用$n的方式获取第n个参数,例如,一个名为paramtest的脚本:1
2#!/bin/bash
echo $1 $2
执行./paramtest a b 的结果是打印出第1个和第2个参数:1
a b
但是,若脚本需要10个以上的参数,直接写数字会有问题。例如,脚本为:1
2#!/bin/bash
echo $1 $2 $3 $4 $6 $7 $8 $9 $10
执行./paramtest a b c d e f g h i j,结果如下,第10个参数是不对的:1
a b c d e f g h i a0
显然$10被解释成了$1+0
解决方法很简单,第10个参数加花括号即可:1
2#!/bin/bash
echo $1 $2 $3 $4 $6 $7 $8 $9 ${10}
再次执行./paramtest a b c d e f g h i j,结果正确:1
a b c d e f g h i j
Dockerfile 最佳实践(转)

本文转自Docker — 从入门到实践
本附录是笔者对 Docker 官方文档中 Best practices for writing Dockerfiles 的理解与翻译。
一般性的指南和建议
容器应该是短暂的
通过 Dockerfile 构建的镜像所启动的容器应该尽可能短暂(生命周期短)。「短暂」意味着可以停止和销毁容器,并且创建一个新容器并部署好所需的设置和配置工作量应该是极小的。
使用 .dockerignore 文件
使用 Dockerfile 构建镜像时最好是将 Dockerfile 放置在一个新建的空目录下。然后将构建镜像所需要的文件添加到该目录中。为了提高构建镜像的效率,你可以在目录下新建一个 .dockerignore 文件来指定要忽略的文件和目录。.dockerignore 文件的排除模式语法和 Git 的 .gitignore 文件相似。
使用多阶段构建
在 Docker 17.05 以上版本中,你可以使用 多阶段构建 来减少所构建镜像的大小。
避免安装不必要的包
为了降低复杂性、减少依赖、减小文件大小、节约构建时间,你应该避免安装任何不必要的包。例如,不要在数据库镜像中包含一个文本编辑器。
一个容器只运行一个进程
应该保证在一个容器中只运行一个进程。将多个应用解耦到不同容器中,保证了容器的横向扩展和复用。例如 web 应用应该包含三个容器:web应用、数据库、缓存。
如果容器互相依赖,你可以使用 Docker 自定义网络 来把这些容器连接起来。
镜像层数尽可能少
你需要在 Dockerfile 可读性(也包括长期的可维护性)和减少层数之间做一个平衡。
将多行参数排序
将多行参数按字母顺序排序(比如要安装多个包时)。这可以帮助你避免重复包含同一个包,更新包列表时也更容易。也便于 PRs 阅读和审查。建议在反斜杠符号 \ 之前添加一个空格,以增加可读性。
下面是来自 buildpack-deps 镜像的例子:1
2
3
4
5
6RUN apt-get update && apt-get install -y \
bzr \
cvs \
git \
mercurial \
subversion
构建缓存
在镜像的构建过程中,Docker 会遍历 Dockerfile 文件中的指令,然后按顺序执行。在执行每条指令之前,Docker 都会在缓存中查找是否已经存在可重用的镜像,如果有就使用现存的镜像,不再重复创建。如果你不想在构建过程中使用缓存,你可以在 docker build 命令中使用 --no-cache=true 选项。
但是,如果你想在构建的过程中使用缓存,你得明白什么时候会,什么时候不会找到匹配的镜像,遵循的基本规则如下:
- 从一个基础镜像开始(
FROM指令指定),下一条指令将和该基础镜像的所有子镜像进行匹配,检查这些子镜像被创建时使用的指令是否和被检查的指令完全一样。如果不是,则缓存失效。 - 在大多数情况下,只需要简单地对比
Dockerfile中的指令和子镜像。然而,有些指令需要更多的检查和解释。 - 对于
ADD和COPY指令,镜像中对应文件的内容也会被检查,每个文件都会计算出一个校验和。文件的最后修改时间和最后访问时间不会纳入校验。在缓存的查找过程中,会将这些校验和和已存在镜像中的文件校验和进行对比。如果文件有任何改变,比如内容和元数据,则缓存失效。 - 除了
ADD和COPY指令,缓存匹配过程不会查看临时容器中的文件来决定缓存是否匹配。例如,当执行完RUN apt-get -y update指令后,容器中一些文件被更新,但 Docker 不会检查这些文件。这种情况下,只有指令字符串本身被用来匹配缓存。
一旦缓存失效,所有后续的 Dockerfile 指令都将产生新的镜像,缓存不会被使用。
Oracle APEX 活跃博文整理 | 2019.08.30

以下是截止至 2019.08.30收集的 Oracle APEX 最新博文,完整博文列表请移步这里:Oracle APEX Evangelion(EVA 补完计划)
常规APEX博文整理:
- Managing Calendars / Calendar Oracle APEX part 2
2019.08 - Managing Calendars / Calendar Oracle APEX part 1
2019.08 - Menu Popup with Declarative List
2019.08 - Oracle APEX Radio Group null option fix
2019.08 - Customising APEX Validation Message
2019.08 - Conditionally Required Floating Item
2019.07 - Integrating Oracle Jet 7.1 Gantt + Dynamic Data + Oracle APEX 19.1 + AJAX
2019.08 - Oracle APEX Plug-in to retrieve GPS location
2019.08 - Include or Exclude Columns in an Interactive Report Export
2019.07
Oracle APEX 活跃博文整理 | 2019.07.17

以下是截止至 2019.07.17收集的 Oracle APEX 最新博文,完整博文列表请移步这里:Oracle APEX Evangelion(EVA 补完计划)
常规APEX博文整理:
- Wipe APEX mail queue
2019.07 - Change Item Icon Dynamically
2019.07 - Creating a mobile app with APEX - Part 5: Refining the Form page
2019.07 - Creating a mobile app with APEX - Part 4: Refining the List View
2019.07 - Creating a mobile app with APEX - Part 3: Adapting the layout
2019.07 - Creating a mobile app with APEX - Part 2: The basic app
2019.07 - Creating a mobile app with APEX - Part 1: Introduction and design
2019.07 - Getting the Oracle APEX certificate, Tips
2019.06 - Interactive Grid Tour App
2019.06 - Should the Oracle APEX Community Care About Autonomous Database?
2019.06 - The Quick Guide for Getting Started with APEX on Autonomous Database Serverless
2019.06 - Showing image thumbnails in Icon View
2019.06 - APEX custom Theme Style performance
2019.06 - See APEX Debug info in PL/SQL and SQL Developer
2019.06 - “Before Header” Branch
2019.06

