Skip to content

Instantly share code, notes, and snippets.

View marcelo-ochoa's full-sized avatar

Marcelo Ochoa marcelo-ochoa

View GitHub Profile
@marcelo-ochoa
marcelo-ochoa / migrate.sh
Created May 4, 2019 19:17
Oracle RDBMS auto-upgrade script
#!/bin/bash
ACTION=${1:-analyze}
export PATH=$PATH:$ORACLE_HOME/jdk/bin
cd /opt/oracle/scripts/startup
echo "Executing $ACTION"
if [ "$ACTION" == "upgrade" ]; then
# Command line stage auto upgrade tool, startup upgrade mode and upgrade step
STATIC FUNCTION ODCIIndexDrop(ia sys.ODCIIndexInfo, env sys.ODCIEnv) RETURN NUMBER is
PREFIX VARCHAR2(30) := GETINDEXPREFIX(IA);
PART VARCHAR2(30) := NVL(IA.INDEXPARTITION,'NONE');
OBJ JSON_OBJECT_T;
REQ UTL_HTTP.REQ;
SYNC_MODE VARCHAR2(32) := GETPARAMETER(PREFIX,PART,'SyncMode');
LOG_LEVEL VARCHAR2(32) := NVL(GETPARAMETER(PREFIX,PART,'LogLevel'),'WARNING');
BEGIN
OBJ := JSON_OBJECT_T.parse('{"delete": { "query":"solridx:'||PREFIX||'"}, "commit":{"softCommit":"false"}}');
begin
static procedure syncInternal(prefix VARCHAR2,
deleted sys.ODCIRidList,
inserted sys.ODCIRidList) IS
OBJ JSON_OBJECT_T;
DEL_OP JSON_ARRAY_T := JSON_ARRAY_T();
REQ UTL_HTTP.REQ;
FULL_COLLECT_STMT VARCHAR2(32767);
SELECT_STMT VARCHAR2(32767);
TBLS VARCHAR2(256);
-- collect parameters values without partition information
STATIC PROCEDURE REBUILD(OWNER VARCHAR2, INDEX_NAME VARCHAR2, PART_NAME IN VARCHAR2 DEFAULT NULL) IS
PREFIX VARCHAR2(4000) := OWNER || '.' || INDEX_NAME;
PART VARCHAR2(4000) := NVL(PART_NAME,'NONE');
OBJ JSON_OBJECT_T;
REQ UTL_HTTP.REQ;
FULL_STMT VARCHAR2(32767);
SELECT_STMT VARCHAR2(32767);
TBLS VARCHAR2(4000);
EXTRA_TBLS VARCHAR2(4000) := GETPARAMETER(PREFIX,PART,'ExtraTabs');
EXTRA_COLS VARCHAR2(4000) := GETPARAMETER(PREFIX,PART,'ExtraCols');
[
{
"rowid":"AAAR79AAMAAAADjAAB",
"solridx":"SCOTT.TUTORIAL_PIDX",
"id":"6H500F0",
"cat":[
"electronics",
"hard-drive"
],
"name":"Maxtor DiamondMax 11 - hard drive - 500 GB - SATA-300",
@marcelo-ochoa
marcelo-ochoa / docker-compose-registry.yml
Created October 28, 2019 14:13
A docker stack for deploying a private docker registry and UI using GlusterFS volume plugin driver
version: '3.6'
services:
registry:
image: registry:2
ports:
- "5000:5000"
networks:
- lb_network
volumes:
@marcelo-ochoa
marcelo-ochoa / docker-compose-portainer.yml
Created October 28, 2019 14:16
A docker compose stack for Portainer.IO and agents using GlusterFS volume driver plugin
version: '3.6'
services:
agent:
image: portainer/agent
environment:
AGENT_CLUSTER_ADDR: tasks.portainer_agent
# AGENT_PORT: 9001
# LOG_LEVEL: debug
volumes:
@marcelo-ochoa
marcelo-ochoa / docker-compose-nginx.yml
Created October 28, 2019 14:33
A docker stack deploy for NGINX working as frontend for Portainer.IO and docker private registry
version: '3.6'
services:
server:
image: nginx
hostname: www.mydomain.com
networks:
- lb_network
ports:
- "80:80"
@marcelo-ochoa
marcelo-ochoa / nginx.conf
Created October 28, 2019 14:36
A simple nginx.conf with additions to log real-IP if it behind a load balancer
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
@marcelo-ochoa
marcelo-ochoa / portainer.conf
Created October 28, 2019 14:40
Portainer.IO site frontend definition
upstream portainer {
server 10.0.1.20:9000;
server 10.0.1.22:9000;
}
server {
listen 80;
server_name portainer.mydomain.com;
location / {