How to configure the clusterbased on Multi-site (WAN) configurationAkihiro Kitada
Step by step instruction to configure Apache Geode cluster based on Multi-site (WAN) configuration. This is basically applicable to Pivotal GemFire - commercial version of Apache Geode.
This presentation covers all aspects of PostgreSQL administration, including installation, security, file structure, configuration, reporting, backup, daily maintenance, monitoring activity, disk space computations, and disaster recovery. It shows how to control host connectivity, configure the server, find the query being run by each session, and find the disk space used by each database.
Spencer Christensen
There are many aspects to managing an RDBMS. Some of these are handled by an experienced DBA, but there are a good many things that any sys admin should be able to take care of if they know what to look for.
This presentation will cover basics of managing Postgres, including creating database clusters, overview of configuration, and logging. We will also look at tools to help monitor Postgres and keep an eye on what is going on. Some of the tools we will review are:
* pgtop
* pg_top
* pgfouine
* check_postgres.pl.
Check_postgres.pl is a great tool that can plug into your Nagios or Cacti monitoring systems, giving you even better visibility into your databases.
Covered:
1. Databases and Schemas
2. Tablespaces
3. Data Type
4. Exploring Databases
5. Locating the database server's message log
6. Locating the database's system identifier
7. Listing databases on this database server
8. How much disk space does a table use?
9. Which are my biggest tables?
10. How many rows are there in a table?
11. Quickly estimating the number of rows in a table
12. Understanding object dependencies
How to configure the clusterbased on Multi-site (WAN) configurationAkihiro Kitada
Step by step instruction to configure Apache Geode cluster based on Multi-site (WAN) configuration. This is basically applicable to Pivotal GemFire - commercial version of Apache Geode.
This presentation covers all aspects of PostgreSQL administration, including installation, security, file structure, configuration, reporting, backup, daily maintenance, monitoring activity, disk space computations, and disaster recovery. It shows how to control host connectivity, configure the server, find the query being run by each session, and find the disk space used by each database.
Spencer Christensen
There are many aspects to managing an RDBMS. Some of these are handled by an experienced DBA, but there are a good many things that any sys admin should be able to take care of if they know what to look for.
This presentation will cover basics of managing Postgres, including creating database clusters, overview of configuration, and logging. We will also look at tools to help monitor Postgres and keep an eye on what is going on. Some of the tools we will review are:
* pgtop
* pg_top
* pgfouine
* check_postgres.pl.
Check_postgres.pl is a great tool that can plug into your Nagios or Cacti monitoring systems, giving you even better visibility into your databases.
Covered:
1. Databases and Schemas
2. Tablespaces
3. Data Type
4. Exploring Databases
5. Locating the database server's message log
6. Locating the database's system identifier
7. Listing databases on this database server
8. How much disk space does a table use?
9. Which are my biggest tables?
10. How many rows are there in a table?
11. Quickly estimating the number of rows in a table
12. Understanding object dependencies
This presentation is for people who want to understand how PostgreSQL shares information among processes using shared memory. Topics covered include the internal data page format, usage of the shared buffers, locking methods, and various other shared memory data structures.
SCALE 15x Minimizing PostgreSQL Major Version Upgrade DowntimeJeff Frost
Let's face it, major version upgrades can be a pain. Most people are familiar with the dump/restore method, but if your database happens to be larger than a few GB, the downtime required for dump/restore is likely going to exceed your maximum maintenance window.
We'll briefly explore upgrade options including dump/restore, pg_upgrade and logical replication tools like Slony and why I think Slony is currently the best option. Then we'll run through a tutorial on how to use slony for a major version upgrade with minimal downtime.
You can find the scripts used in the demos here:
https://github.com/jfrost/scale-15x-talk
Hadoop installation on windows using virtual box and also hadoop installation on ubuntu
http://logicallearn2.blogspot.in/2018/01/hadoop-installation-on-ubuntu.html
This slide contain basic detail about Hadoop and big data. Steps to install and configure Hadoop in Linux OS. And an example to count number of words in a text file using Hadoop.
Covered Database Maintenance & Performance and Concurrency :
1. PostgreSQL Tuning and Performance
2. Find and Tune Slow Running Queries
3. Collecting regular statistics from pg_stat* views
4. Finding out what makes SQL slow
5. Speeding up queries without rewriting them
6. Discovering why a query is not using an index
7. Forcing a query to use an index
8. EXPLAIN and SQL Execution
9. Workload Analysis
One of the most common activity is to perform database restore using old backup or performing PIT recovery for database.
In this blog , We will show you how to perform restore and recovery of the MySQL database using backup taken via mysqlbackup.
Postgresql 12 streaming replication holVijay Kumar N
This is a step by step hands on lab for PostgreSQL 12 , setup of replication, replication slot, failover (promoting) to standby as new master cluster and also covering the scenario where old master has to be reinstated using the utility "pg_rewind"
This presentation is for people who want to understand how PostgreSQL shares information among processes using shared memory. Topics covered include the internal data page format, usage of the shared buffers, locking methods, and various other shared memory data structures.
SCALE 15x Minimizing PostgreSQL Major Version Upgrade DowntimeJeff Frost
Let's face it, major version upgrades can be a pain. Most people are familiar with the dump/restore method, but if your database happens to be larger than a few GB, the downtime required for dump/restore is likely going to exceed your maximum maintenance window.
We'll briefly explore upgrade options including dump/restore, pg_upgrade and logical replication tools like Slony and why I think Slony is currently the best option. Then we'll run through a tutorial on how to use slony for a major version upgrade with minimal downtime.
You can find the scripts used in the demos here:
https://github.com/jfrost/scale-15x-talk
Hadoop installation on windows using virtual box and also hadoop installation on ubuntu
http://logicallearn2.blogspot.in/2018/01/hadoop-installation-on-ubuntu.html
This slide contain basic detail about Hadoop and big data. Steps to install and configure Hadoop in Linux OS. And an example to count number of words in a text file using Hadoop.
Covered Database Maintenance & Performance and Concurrency :
1. PostgreSQL Tuning and Performance
2. Find and Tune Slow Running Queries
3. Collecting regular statistics from pg_stat* views
4. Finding out what makes SQL slow
5. Speeding up queries without rewriting them
6. Discovering why a query is not using an index
7. Forcing a query to use an index
8. EXPLAIN and SQL Execution
9. Workload Analysis
One of the most common activity is to perform database restore using old backup or performing PIT recovery for database.
In this blog , We will show you how to perform restore and recovery of the MySQL database using backup taken via mysqlbackup.
Postgresql 12 streaming replication holVijay Kumar N
This is a step by step hands on lab for PostgreSQL 12 , setup of replication, replication slot, failover (promoting) to standby as new master cluster and also covering the scenario where old master has to be reinstated using the utility "pg_rewind"
PGDay.Amsterdam 2018 - Stefan Fercot - Save your data with pgBackRestPGDay.Amsterdam
Ever heard of Point-in-time recovery? pgBackRest is an awsome tool to handle backups, restores and even helps you build streaming replication ! This talk will introduce the tool, its basic features and how to use it.
Setup oracle golden gate 11g replicationKanwar Batra
How to setup Oracle Goldengate Replication between 11gR2 RAC or Single node instances. For RAC setup the GoldenGate custom cluster service . Not part of this document
There are many ways to run high availability with PostgreSQL. Here, we present a template for you to create your own customized, high-availability solution using Python and for maximum accessibility, a distributed configuration store like ZooKeeper or etcd.
Building tungsten-clusters-with-postgre sql-hot-standby-and-streaming-replica...Command Prompt., Inc
Alex Alexander & Linas Virbalas
Hot standby and streaming replication will move the needle forward for high availability and scaling for a wide number of applications. Tungsten already supports clustering using warm standby. In this talk we will describe how to build clusters using the new PostgreSQL features and give our report from the trenches.
This talk will cover how hot standby and streaming replication work from a user perspective, then dive into a description of how to use them, taking Tungsten as an example. We'll cover the following issues:
* Configuration of warm standby and streaming replication
* Provisioning new standby instances
* Strategies for balancing reads across primary and standby database
* Managing failover
* Troubleshooting and gotchas
Please join us for an enlightening discussion a set of PostgreSQL features that are interesting to a wide range of PostgreSQL users.
PuppetConf 2016: An Introduction to Measuring and Tuning PE Performance – Cha...Puppet
Here are the slides from Charlie Sharpsteen's PuppetConf 2016 presentation called An Introduction to Measuring and Tuning PE Performance. Watch the videos at https://www.youtube.com/playlist?list=PLV86BgbREluVjwwt-9UL8u2Uy8xnzpIqa
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Building RAG with self-deployed Milvus vector database and Snowpark Container...Zilliz
This talk will give hands-on advice on building RAG applications with an open-source Milvus database deployed as a docker container. We will also introduce the integration of Milvus with Snowpark Container Services.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
20 Comprehensive Checklist of Designing and Developing a WebsitePixlogix Infotech
Dive into the world of Website Designing and Developing with Pixlogix! Looking to create a stunning online presence? Look no further! Our comprehensive checklist covers everything you need to know to craft a website that stands out. From user-friendly design to seamless functionality, we've got you covered. Don't miss out on this invaluable resource! Check out our checklist now at Pixlogix and start your journey towards a captivating online presence today.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
20240609 QFM020 Irresponsible AI Reading List May 2024
Postgres 12 Cluster Database operations.
1. POSTGRES DATABASE CLUSTER OPERATIONS.
Topics covered:
1. Creating new POSTGRES DB Cluster
2. Configuring AutoStart
3. Configuring Hugepages
If you have been following along in continuation to the previous post, Today we will see how to create
Postgres Database in a new directory location , By Default Postgres gets installed in the following location
Postgres 12 Home:
/usr/pgsql-12
Postgres Database:
/var/lib/pgsql/12/data
Since /var mountpoint is OS partition , we will install Postgres Database Cluster in a new location , This new
mountpoint can be SSD/Flash disk.
In this case /u01/db01 will be referred as data directory or data area.
2. [postgres@centos usr]$ mkdir -p /u01/pgsql/data
[post_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.
Success. You can now start the database server using:
/usr/pgsql-12/bin/pg_ctl -D /u01/pgsql/data -l logfile gres@centos usr]$
export PGDATA=/u01/pgsql/data
[postgres@centos usr]$ /usr/pgsql-12/bin/initdb -D $PGDATA
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
The database cluster will be initialized with locale "en_NZ.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".
Data page checksums are disabled.
fixing permissions on existing directory /u01/pgsql/data ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... Asia/Dubai
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok
initdb: warning: enabling "trust" authentication for local connections
You can change this by editing pg
Start
/usr/pgsql-12/bin/pg_ctl -D /u01/pgsql/data -l logfile start
NOTE:
1. initdb command will fail if the data directory exists and already contains files
2. Enabling or disabling group access on an existing cluster requires the cluster to be shut
down and the appropriate mode to be set on all directories and files before
restarting PostgreSQL.
3. Permission combinations for Datafile Directory and Files
a. Directory 0700
b. Files 0600
c. Groups 0640
4. Supported File Systems are
a. NFS
b. Secondary File Systems
3. Alternative way to create the database is using the pg_ctl utility :
pg_ctl -D /u01/pgsql/data initdb
[postgres@centos ~]$ pg_ctl -D /u01/pgsql/data/ initdb
The files belonging to this database system will be owned by user
"postgres".
This user must also own the server process.
The database cluster will be initialized with locale "en_NZ.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".
Data page checksums are disabled.
fixing permissions on existing directory /u01/pgsql/data ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... Asia/Dubai
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok
initdb: warning: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.
Success. You can now start the database server using:
/usr/pgsql-12/bin/pg_ctl -D /u01/pgsql/data -l logfile start
Now let’s start the new database cluster:
[postgres@centos ~]$ /usr/pgsql-12/bin/pg_ctl -D /u01/pgsql/data -l logfile
start
waiting for server to start.... stopped waiting
pg_ctl: could not start server
Examine the log output.
[postgres@centos ~]$ cat logfile
2020-04-18 02:26:33.967 +04 [3486] LOG: starting PostgreSQL 12.2 on x86_64-pc-linux-gnu, compiled by gcc
(GCC) 4.8.5 20150623 (Red Hat 4.8.5-39), 64-bit
2020-04-18 02:26:33.967 +04 [3486] LOG: could not bind IPv6 address "::1": Address already in use
2020-04-18 02:26:33.967 +04 [3486] HINT: Is another postmaster already running on port 5432? If not, wait a
few seconds and retry.
2020-04-18 02:26:33.967 +04 [3486] LOG: could not bind IPv4 address "127.0.0.1": Address already in use
2020-04-18 02:26:33.967 +04 [3486] HINT: Is another postmaster already running on port 5432? If not, wait a
few seconds and retry.
2020-04-18 02:26:33.967 +04 [3486] WARNING: could not create listen socket for "localhost"
2020-04-18 02:26:33.967 +04 [3486] FATAL: could not create any TCP/IP sockets
2020-04-18 02:26:33.967 +04 [3486] LOG: database system is shut down
4. #Expected error , To fix this we Add or edit the following lines :
Location : /u01/pgsql/data
File : postgresql.conf
[postgres@centos data]$ cat postgresql.conf |egrep "listen|5450"
listen_addresses = '*' # what IP address(es) to listen on;
port = 5450 # (change requires restart)
File : pg_hba.conf
[postgres@centos data]$ cat pg_hba.conf |grep md5
# METHOD can be "trust", "reject", "md5", "password", "scram-sha-256",
# Note that "password" sends passwords in clear text; "md5" or
host all all 0.0.0.0/0 md5
[postgres@centos data]$ /usr/pgsql-12/bin/pg_ctl -D /u01/pgsql/data -l
logfile start
waiting for server to start.... done
server started
[postgres@centos data]$ psql -p 5450 postgres
psql (12.2)
Type "help" for help.
postgres=# du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
postgres=# x
Expanded display is on.
postgres=# l+
List of databases
-[ RECORD 1 ]-----+-------------------------------------------
Name | postgres
Owner | postgres
Encoding | UTF8
Collate | en_NZ.UTF-8
Ctype | en_NZ.UTF-8
Access privileges |
Size | 8193 kB
Tablespace | pg_default
Description | default administrative connection database
-[ RECORD 2 ]-----+-------------------------------------------
Name | template0
Owner | postgres
Encoding | UTF8
Collate | en_NZ.UTF-8
Ctype | en_NZ.UTF-8
Access privileges | =c/postgres +
| postgres=CTc/postgres
Size | 8049 kB
Tablespace | pg_default
Description | unmodifiable empty database
5. -[ RECORD 3 ]-----+-------------------------------------------
Name | template1
Owner | postgres
Encoding | UTF8
Collate | en_NZ.UTF-8
Ctype | en_NZ.UTF-8
Access privileges | =c/postgres +
| postgres=CTc/postgres
Size | 8049 kB
Tablespace | pg_default
Description | default template for new databases
Note:
Database Cluster, Collection of databases managed by single server instance.
Database Cluster has two main components Data Directory , Port number.
Default Databases created are
a. Template0
b. Template1
c. Postgres
Cluster can be started or stopped , DB cannot be started or stopped individually.
Each cluster has two default tablespace : pg_default and pg_global.
Local connection methods are:
1. psql
2. psql -p <port number> [DBNAME] [USERNAME]
Viewing current database information:
postgres=# select current_Database();
current_database
------------------
postgres
(1 row)
postgres=# select datname ,oid from pg_database ;
datname | oid
-----------+-------
postgres | 14187
template1 | 1
template0 | 14186
(3 rows)
Cluster Database Start/Status/Stop Operations
6. [postgres@centos data]$ #Ensure PGDATA variable is exported
[postgres@centos data]$ echo $PGDATA
/u01/pgsql/data
[postgres@centos data]$ pg_ctl status -D /u01/pgsql/data/
pg_ctl: server is running (PID: 4246)
/usr/pgsql-12/bin/postgres "-D" "/u01/pgsql/data/"
[postgres@centos data]$ pg_ctl stop -m immediate -D /u01/pgsql/data/
waiting for server to shut down.... done
server stopped
[1]+ Done nohup postgres -D /u01/pgsql/data/ > logfile 2>&1
[postgres@centos data]$ pg_ctl status -D /u01/pgsql/data/
pg_ctl: no server running
##MAKE SURE YOU RUN IT ALWAYS IN BACKGROUD
[postgres@centos data]$ nohup postgres -D /u01/pgsql/data/ >logfile 2>&1 &
[1] 4312
[postgres@centos data]$ pg_ctl status -D /u01/pgsql/data/
pg_ctl: server is running (PID: 4312)
/usr/pgsql-12/bin/postgres "-D" "/u01/pgsql/data/"
Configuring AutoStart of Postgres Database Cluster
#Create the following file
[root@centos data]# cat /etc/systemd/system/postgresql.service
[Unit]
Description=PostgreSQL database server
Documentation=man:postgres(1)
After=network.target
[Service]
Type=forking
User=postgres
Group=postgres
# Where to send early-startup messages from the server (before the logging
# options of postgresql.conf take effect)
# This is normally controlled by the global default set by systemd
# StandardOutput=syslog
# Disable OOM kill on the postmaster
OOMScoreAdjust=-1000
# ... but allow it still to be effective for child processes
# (note that these settings are ignored by Postgres releases before 9.5)
Environment=PG_OOM_ADJUST_FILE=/proc/self/oom_score_adj
Environment=PG_OOM_ADJUST_VALUE=0
# Maximum number of seconds pg_ctl will wait for postgres to start. Note
that
7. # PGSTARTTIMEOUT should be less than TimeoutSec value.
Environment=PGSTARTTIMEOUT=270
Environment=PGDATA=/u01/pgsql/data
ExecStart=/usr/pgsql-12/bin/pg_ctl start -D ${PGDATA} -s -w -t
${PGSTARTTIMEOUT}
ExecStop=/usr/pgsql-12/bin/pg_ctl stop -D ${PGDATA} -s -m fast
ExecReload=/usr/pgsql-12/bin/pg_ctl reload -D ${PGDATA} -s
# Give a reasonable amount of time for the server to start up/shut down.
# Ideally, the timeout for starting PostgreSQL server should be handled more
# nicely by pg_ctl in ExecStart, so keep its timeout smaller than this
value.
TimeoutSec=300
[Install]
WantedBy=multi-user.target
[root@centos data]# systemctl enable postgresql.service
Created symlink from /etc/systemd/system/multi-
user.target.wants/postgresql.service to
/etc/systemd/system/postgresql.service.
[root@centos data]# systemctl start postgresql.service
[root@centos data]# systemctl status postgresql
● postgresql.service - PostgreSQL database server
Loaded: loaded (/etc/systemd/system/postgresql.service; enabled; vendor
preset: disabled)
Active: active (running) since Sat 2020-04-18 03:37:19 +04; 3s ago
Docs: man:postgres(1)
Process: 5598 ExecStart=/usr/pgsql-12/bin/pg_ctl start -D ${PGDATA} -s -w
-t ${PGSTARTTIMEOUT} (code=exited, status=0/SUCCESS)
Main PID: 5601 (postgres)
Tasks: 8
CGroup: /system.slice/postgresql.service
├─5601 /usr/pgsql-12/bin/postgres -D /u01/pgsql/data
├─5602 postgres: logger
├─5604 postgres: checkpointer
├─5605 postgres: background writer
├─5606 postgres: walwriter
├─5607 postgres: autovacuum launcher
├─5608 postgres: stats collector
└─5609 postgres: logical replication launcher
Apr 18 03:37:19 centos systemd[1]: Starting PostgreSQL database server...
Apr 18 03:37:19 centos pg_ctl[5598]: 2020-04-18 03:37:19.150 +04 [5601] LOG:
starting PostgreSQL 12.2 on x86_64-pc-linux-gnu, compiled by gcc (G...9),
64-bit
Apr 18 03:37:19 centos pg_ctl[5598]: 2020-04-18 03:37:19.150 +04 [5601] LOG:
listening on IPv4 address "0.0.0.0", port 5450
8. Apr 18 03:37:19 centos pg_ctl[5598]: 2020-04-18 03:37:19.150 +04 [5601] LOG:
listening on IPv6 address "::", port 5450
Apr 18 03:37:19 centos pg_ctl[5598]: 2020-04-18 03:37:19.151 +04 [5601] LOG:
listening on Unix socket "/var/run/postgresql/.s.PGSQL.5450"
Apr 18 03:37:19 centos pg_ctl[5598]: 2020-04-18 03:37:19.152 +04 [5601] LOG:
listening on Unix socket "/tmp/.s.PGSQL.5450"
Apr 18 03:37:19 centos pg_ctl[5598]: 2020-04-18 03:37:19.158 +04 [5601] LOG:
redirecting log output to logging collector process
Apr 18 03:37:19 centos pg_ctl[5598]: 2020-04-18 03:37:19.158 +04 [5601]
HINT: Future log output will appear in directory "log".
Apr 18 03:37:19 centos systemd[1]: Started PostgreSQL database server.
Hint: Some lines were ellipsized, use -l to show in full
Steps to Configure HugePages for Postgres, To leverage 2MB upto 1GB page Size.
#Get the current configuration of Postgres.
[postgres@centos data]$ pwd
/u01/pgsql/data
#Current Huge pages avaialbe
[postgres@centos data]$ cat /proc/meminfo |grep -i Huge
AnonHugePages: 81920 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
#Lets Understand how much memory we have , How much postgres is using
[root@centos sysctl.d]# free -g
total used free shared buff/cache
available
Mem: 7 0 7 0 0
7
[root@centos sysctl.d]# export PGDATA=/u01/pgsql/data
[root@centos sysctl.d]# cat /tmp/hp.sh
#set -x
#!/bin/bash
pid=`head -1 $PGDATA/postmaster.pid`
echo "Pid: $pid"
peak=`grep ^VmPeak /proc/$pid/status | awk '{ print $2 }'`
echo "VmPeak: $peak kB"
hps=`grep ^Hugepagesize /proc/meminfo | awk '{ print $2 }'`
echo "Hugepagesize: $hps kB"
hp=$((peak/hps))
echo Set Huge Pages: $hp
[root@centos sysctl.d]# /tmp/hp.sh
Pid: 1439
9. VmPeak: 397356 kB
Hugepagesize: 2048 kB
Set Huge Pages: 194
#So currently postgres has peaked to 388 MB , Our Huge Page size is 2MB
#Let configure postgres Database cluster to use 4GB of Memory with huge page
of 2MB
#Configure Kernel Parameters
File : /etc/sysctl.conf
[postgres@centos data]$ sudo vi /etc/sysctl.conf
vm.nr_hugepages = 2100 #Equals 4.1 GB
kernel.shmmax = 4294967296 #Equals 4 GB
kernel.shmall = 4194304 #Equals 4 MB
[postgres@centos data]$ sudo sysctl -p
vm.nr_hugepages = 2100 # Equals 4.1 GB
kernel.shmmax = 4294967296 #Equals 4 GB
kernel.shmall = 4194304 #Equals 4 MB
[postgres@centos data]$ free -g
total used free shared buff/cache
available
Mem: 7 4 2 0 0
2
Swap: 9 0 9
#stop Postgresql service
[postgres@centos data]$ sudo systemctl stop postgresql
[postgres@centos data]$ pg_ctl status -D /u01/pgsql/data
pg_ctl: no server running
#Edit the Shared buffer parameter to 4GB
[postgres@centos data]$ cat postgresql.conf|grep "shared_buffers = 4GB"
shared_buffers = 4GB # min 128Kb
#Start the Postgresql service
[postgres@centos data]$ sudo systemctl start postgresql
[postgres@centos data]$ pg_ctl status -D /u01/pgsql/data
pg_ctl: server is running (PID: 3830)
/usr/pgsql-12/bin/postgres "-D" "/u01/pgsql/data"
[postgres@centos data]$ sudo /tmp/hp.sh
Pid: 3830
VmPeak: 4571684
Hugepagesize: 2048 kB
Set Huge Pages: 2232